Как удалить (отфильтровать) указанные c Java Stack-Traces из вывода в Linux? - PullRequest
0 голосов
/ 12 марта 2020

Наша сборка Maven выдает множество Java Stack-Traces при выполнении тестов. На нашем сборочном сервере я бы хотел отфильтровать некоторые из них, в частности те, которые выглядят так:

javax.naming.NameNotFoundException: some.name.blabla
    at ...
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:XXX)

, чтобы уменьшить размер вывода. Если тест не пройден, мы всегда можем запустить тесты локально, чтобы получить полный вывод.

Я бы хотел сделать это, не меняя ничего в нашем коде или наших файлах сборки Maven; Я хочу просто передать вывод Maven в некоторые Linux команды оболочки, которые отфильтровывают эти Stack-Traces.

До сих пор я нашел только вопросы / ответы, которые хотят извлечь / захватить их или отфильтровать используя изменения в Java коде, или Maven, или Eclipse, или в этом фильтре all Stack-Traces.

1 Ответ

1 голос
/ 12 марта 2020

Для такого файла теста

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...