regex - 使用 grep 或类似的方法来匹配多行

标签 regex perl

假设我有一个包含以下文本的文件:

Line1
Cmd1
Cmd2
Cmd3
#
Line2
Cmd1
Cmd3
Cmd4
#

其中 Line1 是一个部分,后面是一些在部分之间可能不同的配置,然后是一个 # 来分隔每个部分。

我知道我可以使用 grep 如下:

grep 'cmd2' file

匹配文件中的cmd2。但是,我只想匹配 cmd2(如果它位于 Line1 部分​​)。使用 -B 是不可能的,因为各部分之间可能有不同数量的配置。

谢谢。

最佳答案

您可以将此 awk 与自定义 RS 结合使用:

awk -v RS=# -v ORS= '/Line1/ && /Cmd2/' file
Line1
Cmd1
Cmd2
Cmd3

关于regex - 使用 grep 或类似的方法来匹配多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185779/

相关文章:

javascript - 正则表达式在 Javascript .split() 上不匹配,但在测试工具上匹配

正则表达式:捕获括号内的任何内容,以及嵌套括号

arrays - 如何递增列表中的值?

Perl 哈希 + while 循环

php - 等于posix regex c++中的pcre regex

正则表达式捕获句子及其标点符号?

perl - 未定义的子程序 &main::首先在 hello.pl 第 6 行调用

mysql - 将 Perl 中的字符串拆分到数据库中

r - 在r中提取两个彼此相邻的主题标签

java - Javacc 中 0 到 180 之间的数字和小数位的正则表达式