У меня есть файл, содержащий это:
1415602803,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
1415602807,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
1415602811,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
1415602815,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
Я хочу преобразовать отметку времени в дату в этом формате:
2014-11-10 02:00:03,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
2014-11-10 02:00:07,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
2014-11-10 02:00:11,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
2014-11-10 02:00:15,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
Как я могу это сделать?
Я знаю, что это работает: perl -pe 's/(\d+)/localtime($1)/e'
(из этого вопроса ), но выходной формат Mon Nov 10 02:00:03 2014
.
Я знаю, что эта команда может конвертировать метки времени в желаемый результат:, date -d@1415602803 +"%F %H:%M:%S"
но я не мог заставить ее работать с awk
использованием system("cmd")
из-за всех цитат и еще много чего.
text-processing
awk
perl
Алаа али
источник
источник
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
даетawk: line 2: function strftime never defined
здесь. Пожалуйста, уточните, что НЕ КАЖДЫЙ AWK имеетstrftime()
! Для решения, работающего в большинстве (всех?) AWK, используйте внешнююdate
команду, чтобы оставаться переносимым.date
реализаций, которые могут преобразовывать даты между форматами как расширение, но как это делается, полностью зависит от реализации. Например, решение, данное Costas, использует синтаксис, специфичный для GNUdate
. Если вы хотите мобильности, используйтеperl
.Если вам нравится,
awk
вы можете использовать внешние командыdate
с любыми форматами датыисточник
strftime()
!Вы также можете попробовать:
источник
Я задал вопрос 9 месяцев назад, который был отмечен как дубликат этого. Я только сейчас увидел просьбу опубликовать ответ, который работал для меня на этот вопрос. Вот ссылка на этот вопрос и ответ.
/unix//a/304009/172916
источник