考虑一个如下所示的日志文件:
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'