Grep “out”匹配项以及后续 n 行

Grep “out”匹配项以及后续 n 行

考虑一个如下所示的日志文件:

action A
detail 1
detail 2
detail 3
action X
detail 1
detail 2
action B
detail 1
action X
detail 1
detail 2
action C

带有“动作 [ABC]”的行可能有不同数量的后续“细节”行。

带有“action X”的行总是2遵循“细节”线。

我对事件 X 不感兴趣,所以我想过滤掉所有包含“动作 X”的行和以下两行。

我知道这个-v标志,只是不知道如何表达“和以下两行”部分。

答案1

尝试这个:

sed '/action X/{ N; N; d }'

答案2

下面是一个 awk 替代方案,其功能与妮可的 sed回答

awk '/action X/ { getline; getline; getline } 1' 

相关内容