Скрипт на AWK по разбору логов., Okean, 09-Фев-05, 12:59 [смотреть все]Добрый день! Помогите пожалуйста, новичку. Совсем запутался. Помогите пожалуйста написать скрипт на AWK для разбора логов. Дело в том, что в логах нет строгой формы по полям. Подправьте скрипт пожалуйста. $ cat file.log | awk 'BEGIN{FS="\""} {gsub(/: .*/,"",$1); split($2,a,"[\[\]]"); printf "%s [%s] %s\n",$1,a[3],$3}' Вот куски лога. Количество полей разное. 25 Jan 15:16:33: [ 5151]:ERR06:MSG: 005 "050125 151451 0e 0000000000000020 0/1/0 [Trans not complete] [3(-4)-write err.,1,050125151441,025403,1189,03,9554] [040080003D0C87016600]" [J025403] 25 Jan 15:37:19: [ 5272]:ERR06:MSG: 005 "050125 153620 40 0000000000809041 1/1/0 [Disp failure] [SBDISRD) R(02000101) F(CCNG.CngDispen)] [01A01805050500003D5A]" [J019661] 25 Jan 15:46:46: pos16 [ 5360]:ERR06:MSG: 005 "050125 154644 07 0000000000000021 1/0/0 [Cover door opened] [doors: 1nn,0]" [J025403] Хотелось бы на выходе в другом файле увидеть: 25 Jan 15:16:33 [Trans not complete] [J025403] 25 Jan 15:37:19 [Disp failure] [J019661] 25 Jan 15:46:46 [Cover door opened] [J025403] Что здесь написано не правильно, чтобы получить желаемый результат? Очень -очень нужно. За ранее спасибо. |
- Скрипт на AWK по разбору логов., sas, 18:00 , 09-Фев-05 (1)
>Добрый день! >Помогите пожалуйста, новичку. Совсем запутался. >Помогите пожалуйста написать скрипт на AWK для разбора логов. >Дело в том, что в логах нет строгой формы по полям. >Подправьте скрипт пожалуйста. >$ cat file.log | awk 'BEGIN{FS="\""} {gsub(/: .*/,"",$1); split($2,a,"[\[\]]"); printf "%s [%s] >%s\n",$1,a[3],$3}' >Вот куски лога. Количество полей разное. >25 Jan 15:16:33: [ 5151]:ERR06:MSG: 005 "050125 151451 0e 0000000000000020 0/1/0 [Trans >not complete] [3(-4)-write err.,1,050125151441,025403,1189,03,9554] [040080003D0C87016600]" [J025403] >25 Jan 15:37:19: [ 5272]:ERR06:MSG: 005 "050125 153620 40 0000000000809041 1/1/0 [Disp >failure] [SBDISRD) R(02000101) F(CCNG.CngDispen)] [01A01805050500003D5A]" [J019661] >25 Jan 15:46:46: pos16 [ 5360]:ERR06:MSG: 005 "050125 154644 07 0000000000000021 1/0/0 >[Cover door opened] [doors: 1nn,0]" [J025403] >Хотелось бы на выходе в другом файле увидеть: >25 Jan 15:16:33 [Trans not complete] [J025403] >25 Jan 15:37:19 [Disp failure] [J019661] > >25 Jan 15:46:46 [Cover door opened] [J025403] >Что здесь написано не правильно, чтобы получить желаемый результат? >Очень -очень нужно. >За ранее спасибо. Попробуйте awk 'BEGIN{FS="\""} {gsub(/: .*/,"",$1); split($0,a,"[\\[\\]]"); printf "%s [%s] %s\n",$1,a[2],$3}' удачи --- sas
|