LINUX.ORG.RU

Работа с grep ( различные условия )

 , ,


1

2

Добрый вечер ребята. Нубский вопросик. Дано: различные ява логи со стектрейсами ( ОС дебиан ), например:

Exception in thread «main» java.lang.NullPointerException

at com.example.myproject.Book.getTitle(Book.java:16)

at com.example.myproject.Author.getBookTitles(Author.java:25)

at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

Если я просто грепую: grep -i ‘NullPointerException’ /путь Он выведет мне строку с данной надписью.

Вопрос: можно из поиска «всех ошибок» (который вывести простым grep -i «ERROR» /путь), убрать ненужные ошибки, те на которые я не хочу обращать внимания.

Допустим: Вывести все ошибки ERROR, кроме NullPointerException. Есть ключ -V, но насколько я понимаю он уберет только строчку содержащую значение NullPointerException ( grep -v «NullPointerException» /путь А мне бы хотелось, что бы и стектрейс этой ошибки тоже не выводился. Или это из области фантастики?

Ответ на: комментарий от Ager

Да, но нет. Жава генерит ошибки в виде длинных многострочных трейсов (как и всякий ынтырпрайз на питонах, джангах и иже с ними), может тут есть более удобный инструмент чем grep -v с мультилайн регекспами?

slowpony ★★★ ()

Почитай мануал grep-а

       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing a  group  separator
              (described   under   --group-separator)   between  contiguous  groups  of  matches.   With  the  -o  or
              --only-matching option, this has no effect and a warning is given.
hummer ()