Ho un file contenente questo:
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
Voglio convertire il timestamp in una data in questo 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
Come posso fare ciò?
So che funziona: perl -pe 's/(\d+)/localtime($1)/e'(da questa domanda ) ma il formato di output è Mon Nov 10 02:00:03 2014.
So che questo comando può convertire i timestamp nell'output desiderato:, date -d@1415602803 +"%F %H:%M:%S"ma non sono riuscito a farlo funzionare con l' awkuso a system("cmd")causa di tutte le citazioni e quant'altro.
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'dàawk: line 2: function strftime never definedqui. Si prega di chiarire che NON OGNI AWK hastrftime()! Per una soluzione in esecuzione nella maggior parte (tutti?) Degli AWK, utilizzare ildatecomando esterno per rimanere portatile.