Я хочу найти строку в журналах событий приложений Windows с помощью Grep. Ниже бревенчатые выдержки:Как вести журнал событий приложений, используя grep?
I 05-Nov-14 10:08:04 51033 AP_AN <I>1 images out of 1 are transferred to ABS_Dynamics for the job(297.0.0) at the rate of 0.09 images/sec. </I>
Time: 5.11.2014, 10:08:04, Line: 1068, File: \EdCom\src\ArcNet\ArcNet_server\src\ANBeServer/ANBeNetworkNodeJob_haz.cpp, Process: CGenericMain (7804)
W 05-Nov-14 10:08:53 14 AXY_ISC State Manager has detected a hung process.
Time: 5.11.2014, 10:08:53, Process: C:\AIOM\Service\bin\Rep.exe_1976,
Text: (05.11.2014 10:08:53) IV SET: CProcess::DeclareHung(AppUI_A,6228) Process appears to be hung. (null
W 05-Nov-14 10:08:53 17 AXY_ISC An error was detected in a process that is monitored by State Manager.
Time: 5.11.2014, 10:08:53, Process: C:\AIOM\Service\bin\Rep.exe_1976,
Text: (05.11.2014 10:08:53) IVS SET: CMonitorThread::ProcessFailing(PID:6228 TID:4264) Process AppUI_A is
Я хочу, чтобы искать строку сказать «CProcess :: DeclareHung» в журнале событий и выход поиска должен быть следующим:
W 05-Nov-14 10:08:53 14 AXY_ISC State Manager has detected a hung process.
Time: 5.11.2014, 10:08:53, Process: C:\AIOM\Service\bin\Rep.exe_1976,
Text: (05.11.2014 10:08:53) IV SET: CProcess::DeclareHung(AppUI_A,6228) Process appears to be hung. (null
т.е.. журналы и сводные строки, включая строку поиска.
Каждая строка разделяется символом новой строки, и этот файл журнала является TXT-файлом. Я знаю, что grep - это поисковое приложение на основе строки, но я прочитал, что, используя регулярное выражение жемчуга, мы можем заставить grep искать несколько строк. Я новичок в регулярном выражении жемчуга и не имею ни малейшего представления о том, как это сделать.
Может ли кто-нибудь помочь мне найти это с помощью grep?
EDIT: Я попытался следующие, но безуспешно
grep -P "[W|E|I] \d\d-\w\w\w-\d\d.*[\s]*.*CProcess::DeclareHung.*[\s]*.*" XA2014_11_04_AppEventLog.txt
что определяет сводные строки? Всегда ли она содержит одну букву в самом начале? – fedorqui
@ fedorqui: начало строки с W или I или E будет строкой журнала, за которой следуют 0 или более суммарных строк. Все строки журнала и итоговые строки разделяются символом новой строки. Строки журнала всегда содержат одну букву в начале. – Smij01