LINUX.ORG.RU

Вот засада...


0

0

Доброго времени суток.

Помогите разрешить проблему. Есть лог файл вот такого формата:

[2010/01/12@13:57:01.545+0300] P-32141 T-5662400 I RFUTIL 19: (453) Вышел Aimage empty с batch.

Нужно его распарсить и получить на выходе следующее:

Дата, время, «RFUTIL», и последнее сообщение(«Вышел Aimage empty с batch.»)

Собсно, вот. Помогите :-)


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

| sed -e «s/\(\S\+\).*:\s\(.*\)/\1 RFUTIL \2/»

Не читабельно.

sdio ★★★★★
()

можно на перле набросать. Не более одной строчки должно выйти

Ged_2i_2
()

Вот так это делается (если я правильно понял формат записи):

cat logfile.log | sed -re 's/\[([0-9/]+)@([0-9:.]+\+[0-9]+)\] [^ ]+ [^ ]+ [^ ]+ ([^ ]+) [0-9]+: \([0-9]+\) (.*)$/«\1», «\2», «\3», «\4»/'

ddos3
()
Ответ на: комментарий от ddos3

Нет, это делается так (разбил на две строки для наглядности):

$ echo '[2010/01/12@13:57:01.545+0300] P-32141 T-5662400 I RFUTIL 19: (453) Вышел Aimage empty с batch.' |
   awk -F'[@.)[]' '/RFUTIL/ {print $2", "$3", RFUTIL,"$5}'

2010/01/12, 13:57:01, RFUTIL, Вышел Aimage empty с batch

sdio ★★★★★
()
Ответ на: комментарий от fashka

>Ну, в принципе, другого ответа я не ждал...

Это означает «мне самому лень напрягаться, так вы за меня сделайте»?

kraw ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.