如何在Linux中从输出中删除(过滤掉)特定的Java堆栈跟踪?

如何在Linux中从输出中删除(过滤掉)特定的Java堆栈跟踪?,java,bash,Java,Bash,我们的Maven构建在运行测试时会产生大量Java堆栈跟踪。 在我们的构建服务器上,我想过滤掉其中一些,特别是那些看起来像: javax.naming.NameNotFoundException: some.name.blabla at ... at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:XXX) 减少输出的大小。如果测试失败,我们总是可以在本地重新运行测试,以获得完整的输出 我

我们的Maven构建在运行测试时会产生大量Java堆栈跟踪。 在我们的构建服务器上,我想过滤掉其中一些,特别是那些看起来像:

javax.naming.NameNotFoundException: some.name.blabla
    at ...
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:XXX)
减少输出的大小。如果测试失败,我们总是可以在本地重新运行测试,以获得完整的输出

我希望这样做,而不改变任何我们的代码或我们的Maven构建文件; 我只想通过管道将Maven的输出输入到一些Linuxshell命令中,过滤掉那些堆栈跟踪


到目前为止,我只找到了一些问题/答案,这些问题/答案希望提取/捕获它们,或者使用Java代码、Maven或Eclipse中的更改对它们进行过滤,或者过滤掉所有堆栈跟踪。

对于这样的测试文件

$ cat file
str1
javax.naming.NameNotFoundException: some.name.blabla
    at ...
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:XXX)
str2
javax.naming.NameNotFoundException: some.name.blabla
    at ...
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:XXX)
str3
使用
sed

$ sed '/NameNotFoundException/,/ForkedBooter/d' file
str1
str2
str3