отображать определенные разделы файлов журнала в оболочке Linux - PullRequest
2 голосов
/ 02 февраля 2012

Я ищу способ получить определенную информацию из файла журнала.

Это мой файл журнала:

------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
ERR: [01.02.2012 14:17:44] [[SOME][MORE][INFO] additional debug informations]
[corresponding source file]
------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
ERR: [01.02.2012 14:21:42] [[SOME][MORE][INFO] additional debug informations]
 [corresponding source file]
------
[SQL STATEMENT
MAYBE
SEVERAL
LINES
LONG
]
DEBUG: [23.08.2011 22:30:01] []
 [corresponding source file]
------

Этот файл журнала содержит информацию об отладке и ошибкахSQL заявления.Мне нужно получить все блоки сообщений об ошибках sql из этого файла журнала.

Эти блоки разделены строками с '------'.

Как и первая записьфайла сообщения об ошибках представлены как «ERR:» в блоке сообщений.Как я могу получить эти сообщения из файла.Я не хотел писать специальные сценарии для такого рода задач.Поэтому было бы неплохо, если бы это можно было сделать с помощью инструментов командной строки.

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

awk может сделать это за вас:

awk 'BEGIN { RS="------" ; ORS=RS}
     $0 ~ "ERR: " { print }' INPUTFILE

Распечатает блоки ERR:. Если вы хотите, чтобы остальные просто заменили ~ на !~.

Смотрите это в действии здесь .

0 голосов
/ 02 февраля 2012

Вы можете использовать grep:

grep ERR: filename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...