дружественная к grep регистрация трассировок стека - PullRequest
3 голосов
/ 09 февраля 2011

Я много работаю с журналами, сгенерированными Java Log4j и модулем журналирования Python.Оба создают трассировки стека, которые включают символы новой строки, в результате чего запись журнала занимает несколько строк.Это затрудняет поиск с помощью grep и нарушает общепринятые правила форматирования файла журнала (одна запись в строке).

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

Есть ли лучший способ справиться с этим?Возможно, как-нибудь удалить символы новой строки из трассировки стека?

Спасибо за любые предложения!

Ответы [ 2 ]

0 голосов
/ 09 февраля 2011

Если у вас есть GNU grep, вы можете использовать переключатель -C (AKA --context):

-C NUM , - context = NUM
Печать NUM строк выходного контекста.Размещает строку, содержащую - между смежными группами совпадений.

Я не уверен, является ли -C частью grep POSIX, но это того стоит.

0 голосов
/ 09 февраля 2011
 grep 'your expressing and file name' | less

Сначала будет показан маленький стек.Затем введите, чтобы узнать больше.

Вы также можете использовать 'head' или 'tail' имени файла

  tail -1000 'filename'

Это показывает последние (последние) 1000 строк из этого файла.

...