我正在寻找一些带有一些周围行的日志文件,然后从匹配项中丢弃垃圾行。更糟糕的是,愚蠢的代码两次输出相同的异常,所以我想每隔一个 grep 匹配就丢弃。我不知道当还包括周围的行时,是否有跳过所有其他 grep 匹配的好方法,所以我很高兴一次完成。
假设我们从 grep 得到以下结果:
InterestingContext1
lkjsdf
MatchExceptionText1
--
kjslkj
lskjlk
MatchExceptionText2
--
InterestingContext3
lkjsdf
MatchExceptionText3
--
kjslkj
lskjlk
MatchExceptionText4
--
显然,grep 匹配是“MatchExceptionText”(当然是简化的)。因此,我想将其通过管道传输到可以删除第 2、5、6、7、8 行的地方,然后重复该模式,因此结果如下所示:
InterestingContext1
MatchExceptionText1
--
InterestingContext3
MatchExceptionText3
--
重复是事情对我来说变得棘手的地方。我知道 sed 可以只删除某些行号,但我不知道如何将它们分组为 8 行组并在所有组中重复该剪切。
有任何想法吗?谢谢你的帮助。