Измените формат времени в файле журнала

У меня есть файл журнала сквида в, следуют за форматом:

31/Jul/2014:13:44:52 +0400.701      0 172.16.204.59 TCP_DENIED/407 5232 GET http://vec01.maps.yandex.net/tiles? - NONE/- text/html

но зарегистрируйте время потребности анализатора в формате Unix.

команда даты может преобразовать в формат Unix:

date -d "31 Jul 2014 12:51:57 +0400" '+%s'
1406796717

но я не могу сочинить sed команда для формата изменения.Пожалуйста, помогите мне.

-2
задан 4 September 2014 в 15:11

1 ответ

Можно использовать следующую команду жемчуга для замены всех дат в существующих журналах:

cat my_squid.log | perl -ne '/(^.*? \+.*?)\..*?\s/; $a = $b = $1;$a= "\Q$a"; $b=~s/\// /g; $b=~s/(\d{4}):/$1 /; $b=`date --date=\"$b\" +%s`; chomp($b); s/$a/${b}/; print'

Вывод теперь:

1406799892.701      0 172.16.204.59 TCP_DENIED/407 5232 GET http://vec01.maps.yandex.net/tiles? - NONE/- text/html
0
ответ дан 7 October 2019 в 04:04

Другие вопросы по тегам:

Похожие вопросы: