假设我有一个包含以下文本的文件:
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/