Eu tenho um arquivo contendo isso:
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
Quero converter o carimbo de data e hora em uma data neste formato:
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
Como eu posso fazer isso?
Eu sei que isso funciona: perl -pe 's/(\d+)/localtime($1)/e'
(a partir desta pergunta ), mas o formato de saída é Mon Nov 10 02:00:03 2014
.
Eu sei que este comando pode converter timestamps em minha saída desejada: date -d@1415602803 +"%F %H:%M:%S"
, mas eu não poderia fazê-lo funcionar com o awk
uso system("cmd")
por causa de todas as citações e outros enfeites.
text-processing
awk
perl
Alaa Ali
fonte
fonte
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
dáawk: line 2: function strftime never defined
aqui. Esclareça que nem todo AWK possuistrftime()
! Para uma solução em execução na maioria dos AWKs (todos?), Use odate
comando externo para permanecer portátil.date
implementações que podem converter datas entre formatos como uma extensão, mas como isso é feito varia completamente entre as implementações. Por exemplo, a solução fornecida por Costas usa uma sintaxe específica para o GNUdate
. Se você deseja portabilidade, useperl
.Se desejar,
awk
você pode usar o comando externodate
com qualquer formato de datafonte
strftime()
!Você também pode tentar:
fonte
Eu fiz uma pergunta há 9 meses que foi marcada como uma duplicata desta. Acabei de ver um pedido para postar a resposta que funcionou para mim nessa questão. Aqui está um link para essa pergunta e resposta.
/unix//a/304009/172916
fonte