【发布时间】:2017-05-27 22:01:00
【问题描述】:
我想使用 shell 命令 grep 或搜索匹配两个不同模式的两个连续行,例如匹配 line1:“abc”,匹配 line2:“def”。因此,对于以下文本,应该有一个匹配项:第 4 行和第 5 行。
1234
abc-noise
6789
abc-noise
def-noise
def-noise
1234
当我找到这样的匹配时,我想在匹配前打印它,包括 N 行。有任何想法吗?谢谢。
【问题讨论】:
-
到目前为止你写了什么?
-
您是否尝试过使用
grep、sed或任何工具。发布您的研究成果 -
没什么可展示的。我试过'grep -B1 def | grep -A1 abc' ,但后来我陷入了如何在比赛前获得 N 行的问题。其中 -B1 在匹配前输出 1 行,在匹配后输出 -A1 1 行
-
不是真正的重复。棘手和不同的部分是我还需要在连续行匹配之前输出 N 行。