如何使用 grep 跨多行查找模式?

2023-11-22

我想找到按顺序包含“abc”和“efg”的文件,并且这两个字符串位于该文件中的不同行。例如:一个包含内容的文件:

blah blah..
blah blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah blah..
blah blah..

应该是匹配的。


对于此操作,Grep 是一个笨拙的工具。

pcregrep在大多数现代 Linux 系统中都可以找到它,可以用作

pcregrep -M  'abc.*(\n|.)*efg' test.txt

where -M, --multiline允许模式匹配多行

有一个较新的PCRE2grep还。两者均由PCRE项目.

pcre2grep 可用于 Mac OS X,通过Mac 端口作为港口的一部分pcre2:

% sudo port install pcre2 

and via Homebrew as:

% brew install pcre

或用于 PCR2

% brew install pcre2

PCRE2GREP 是也提供在 Linux 上(Ubuntu 18.04+)

$ sudo apt install pcre2-utils # PCRE2
$ sudo apt install pcregrep    # Older PCRE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 grep 跨多行查找模式? 的相关文章

  • 正则表达式:删除 xml 的空元素标签

    我想将所有自封闭元素替换为长语法 因为我的网络浏览器在它们上绊倒 Example becomes 我正在使用 python 风格的正则表达式 这些解决方案都不会容纳像 foo gt 这样的属性 尝试 s lt w gt s gt lt 1
  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • 为什么我只得到第一个捕获组?

    https stackoverflow com a 2304626 6607497 https stackoverflow com a 2304626 6607497 and https stackoverflow com a 370042
  • Vim 搜索模式,如果出现则删除到行尾

    我正在尝试在文本文件中搜索特定模式 如果出现这种模式 则意味着该行的其余部分不需要 因此可以删除 我尝试过使用以下命令 但到目前为止还没有成功 s pattern d g pattern d 如果有人有任何建议 他们将不胜感激 would
  • grep 通过彩色文本,例如海湾合作委员会 |颜色gcc | grep 正则表达式

    在 grep 管道输出时 如何使 grep 尊重 ANSI 颜色转义 我很高兴使用其他东西 perl 而不是 grep 我的用户案例 我想要 gcc foobar c colorgcc grep regexp ls color grep f
  • 用于多行字符串的 ECMAScript 正则表达式

    我正在为我的应用程序编写加载过程 它涉及从文件中读取数据并创建具有适当属性的适当对象 该文件由以下格式的连续条目 以换行符分隔 组成 OBJECT TYPE
  • 正则表达式:如何匹配所有大于 954 的数字?

    I tried 0 9 d d 4 但它没有给出正确的结果 I 不会使用正则表达式因为你会陷入丑陋的模式链中 但是 如果仍然必须或想要使用它 您可以使用如下正则表达式 1 9 d 3 9 6 9 d 9 5 9 2 工作演示 https r
  • 有人能给我一个 1 到 5 之间数字的正则表达式吗

    有人能给我一个 1 到 5 之间的单个数字的正则表达式吗 例如输入必须是 1 到 5 之间的数字 55 或 23 不匹配 尝试使用anchors http www regular expressions info anchors html
  • 如何在 iPhone 应用程序中使用正则表达式以 , (逗号)分隔字符串

    我必须读取包含三列的 csv 文件 在解析 csv 文件时 我得到了这种格式的字符串克里斯托弗 巴斯 为心爱的国家哭泣 期末论文 电子邮件受保护 cdn cgi l email protection 我想将三列的值存储在一个数组中 所以我使
  • 用于验证 ip 列表中的 ip 范围的正则表达式

    我有正则表达式用于验证 50 个 ips 逗号分隔的列表 25 0 5 2 0 4 0 9 01 0 9 0 9 3 25 0 5 2 0 4 0 9 01 0 9 0 9 1 50 列表示例 10 10 10 1 127 0 0 1 现在
  • 正则表达式中的“g”标志是什么意思?

    的含义是什么g正则表达式中的标志 之间有什么区别 g and g用于全局搜索 这意味着它将匹配所有出现的情况 通常你还会看到i这意味着忽略大小写 参考 全局 JavaScript MDN https developer mozilla or
  • 正则表达式:匹配未包含在 [] 中的空格

    例如 对于这个字符串 div img wrapper img title Hello world 我想匹配第一个空格 但不匹配第二个空格 包含在 中 正则表达式是什么 以下表达式将通过使用前瞻断言来完成这项工作 gt 下划线代表空格 该表达
  • vscode 中正则表达式的不完整量词

    我正在尝试为对象的开头创建一个正则表达式 以便我可以用单个替换完整的块 在vscode的查找和替换中 My Regex id oid 0 9 product id 0 9 我的示例输入 id oid 973 product id 973 p
  • 正则表达式,提取不在两个括号之间的字符串

    好的正则表达式问题 如何提取不在两个字符之间的字符 在本例中是括号 我有一个字符串 例如 字1 字2 字3 字 4 我只想获取第一个和最后一个 管道 而不是括号之间的第二个 管道 我已经尝试了无数次负克拉和负分组的尝试 但似乎无法使其发挥作
  • Python 中的正则表达式匹配长度超过八个字母的任何内容

    尽管尝试掌握 grep 和相关的 GNU 软件 但我还没有接近掌握正则表达式 我确实喜欢它们 但我还是觉得它们有点碍眼 我想这个问题对某些人来说并不困难 但我花了几个小时试图弄清楚如何在我最喜欢的书中搜索大于一定长度的单词 最后 想出了一些
  • Javascript正则表达式单引号

    我的正则表达式是 var re a z A Z 1 15 我想允许这样 单引号 我怎样才能做到这一点 例如 您可以使用以下正则表达式来允许类似的字符串abcd dfgh A Za z A Za z
  • 使用哪个正则表达式将此字符串转换为数组?

    从 mysql 中的地理空间列我得到以下字符串值 我想将其转换为数组 最终目标是将其转换为 geoJSON POLYGON 4 885838 52 388063 4 891061 52 388381 4 890973 52 382909 该
  • 将字符串与 perl 中的模式对齐?

    我在方括号内有一些字符串块 如下所示 p1 text1 label1 p2 text2 label2 p3 text3 label3 等等 每个块里面有什么并不重要 但有时会有一些没有用方括号括起来的零散文本块 例如 p1 text1 la
  • Python 正则表达式部分匹配或“hitEnd”

    我正在编写一个扫描器 因此我将任意字符串与正则表达式规则列表进行匹配 如果我可以模拟 Java hitEnd 功能 不仅知道正则表达式何时不匹配 还知道何时匹配 这将非常有用 can t匹配 当正则表达式匹配器在决定拒绝输入之前到达输入末尾
  • 如何在SQL Server中获取与正则表达式匹配的字符串的一部分

    我有一个要求 我需要解析列值以获取与其关联的工作请求编号 例如 列值可能包含 致力于 AB 0012589 or AB 0012589 已完成 或其中包含工作请求编号的任何内容 Here AB 0012589是工作请求编号 工作请求编号的格

随机推荐

  • 为什么这个图像在Java中按比例缩小后看起来这么糟糕?

    这是原始图像 http rank my public images uploaded orig 4193395691714613396 png 这里它被缩小到 300x225 http rank my public images uploa
  • 在 .NET/C# 中使用委托加速反射 API

    This post有评论if you need to call the method multiple times use reflection once to find it then assign it to a delegate an
  • URIBuilder 和列表查询参数

    我正在使用阿帕奇URI生成器构建一个查询字符串获取方法的休息服务 RequestMapping value remote public Return getTest Ordine ordine throws Exception 这是输入对象
  • Java重构工具[重复]

    这个问题在这里已经有答案了 可能的重复 像 ReSharper 这样的工具 但适用于 Java 我非常频繁地使用 Eclipse 提供的 Java 代码重构工具 提取接口 重命名方法等 有谁知道其他类似的工具 最好是 Eclipse 插件
  • 在实体框架中添加与同一个表的第二个一对一关系

    我正在做代码优先的实体框架设计 我有一个表 Account 它有一个属性 Supervisor public class Account public int Id get set public Account Supervisor get
  • 如何进入亚音速?

    一个月前 我搜索了一些可以为我的 SQL 数据库 表生成 C 类的工具 这样我就不必手动编写DAL类并节省大量时间 我遇到了 ORM 和亚音速 我在主页上观看了网络广播http subsonicproject com 并且是印象深刻 by
  • 在静默模式下运行 CMD 或 BAT

    如何以静默模式运行 CMD 或 bat 文件 我希望阻止向用户显示 CMD 界面 包括这句话 echo off 就在你的bat脚本的顶部
  • 如何在 Windows 8 应用程序中向 HttpWebRequest 添加标头?

    我开发 C XAML Metro ui 应用程序 我想调用一些服务并使用HttpWebRequest为了这 之前的实现HttpWebRequest包含ContentLength and UserAgent特性 但WinRT的实现却没有它 我
  • AES/CBC 真的需要 IV 参数吗?

    我正在编写一个简单的应用程序来使用 AES CBC 模式 加密我的消息 据我了解 CBC 模式需要 IV 参数 但我不知道为什么我的代码在不使用 IV 参数的情况下工作 任何人都可以解释为什么吗 谢谢 加密消息无一例外地打印 T9KdWxV
  • 释放-获取的传递性

    正当我以为我已经掌握了原子知识时 我看到了另一篇文章 这是摘录自GCC wiki under 总体总结 Thread 1 Thread 2 Thread 3 y store 20 if x load 10 if y load 10 x st
  • node.js,捕获错误以便脚本不会中断?

    我有一个 node js 脚本 每当发生错误时 node js 都会因发生的错误而停止运行 检查 Node js 中的错误的正确方法是什么 这样它就不会破坏脚本并导致 Node js 停止 您可以通过设置以下内容来捕获其他未捕获的错误 pr
  • 数据包加密在Chef服务器上加密,但是如何加密本地副本呢?

    我在私有 git 存储库中拥有完整的 Chef 配置集 包括角色 食谱 数据包等 我发现当数据包上传到 Chef 服务器时 我可以使用 secret file 选项对其进行加密 但我也想将这些数据包加密存储在 git 存储库中 唯一想到的就
  • Django 开发服务器和 MIME 类型

    是否有在 django 开发服务器中设置 MIME 类型 具体来说 我希望从 Chrome 开发工具的警告中删除此消息 Resource interpreted as Image but transferred with MIME type
  • % 在 like 子句的开头

    我听说由于性能原因 不建议在 SQL Server 中的 LIKE 子句开头使用 为什么会这样呢 有关此问题的更多详细信息将帮助我了解此问题的影响 A 在一个的开始LIKE子句意味着索引完全没有用 如果有静态文本将图案锚定在 至少可以从索引
  • 在批处理文件中,如何判断进程是否正在运行?

    我想编写一个批处理文件来检查进程是否正在运行 如果正在运行 则执行一个操作 如果没有 则执行另一个操作 我知道我可以使用任务列表列出所有正在运行的进程 但是有没有更简单的方法来直接检查特定进程 看起来这应该可行 但事实并非如此 taskli
  • 找到穿过迷宫的所有可能路径

    我正在尝试创建一个程序 该程序将遍历一个随机生成的迷宫 其中 1 是开放的 0 是墙壁 从左上角开始 到右下角结束 路径可以向上 向下 向左 向右 目前 我的程序为我提供了一种解决方案 但我无法让它打印多个路径 我已经阅读了这个问题的几个不
  • 如何使用 Apache Velocity 进行 XML 转义?

    我正在使用 Apache Velocity 生成 XML XML 转义输出的最佳 最直接 方法是什么 我看到有一个转义工具 但无法弄清楚它的开发状态 我还认为 XML 转义很可能是由 Velocity 直接支持的 看一眼事件处理程序 eve
  • IOS 关闭/显示键盘而不放弃第一响应者

    我的应用程序与通过蓝牙连接的条形码扫描仪一起使用 连接扫描仪后 您可以双击扫描仪上的按钮来关闭 显示屏幕键盘 90 的情况下 用户会希望隐藏键盘 因为他们将扫描条形码来输入数据 我提前知道有一些例外情况需要启用键盘 我想省去他们按扫描仪按钮
  • 可能使用三元运算符表达条件 HAML

    尝试想出一种更紧凑的方式在 HAML 和 Ruby 中表达这个条件 也许使用三元运算符 if page nil br nothing yet else br page name 寻找类似的方法有条件地测试是否在 HAML 模板中添加类的巧妙
  • 如何使用 grep 跨多行查找模式?

    我想找到按顺序包含 abc 和 efg 的文件 并且这两个字符串位于该文件中的不同行 例如 一个包含内容的文件 blah blah blah blah blah abc blah blah blah blah blah blah blah