Tengo un archivo que contiene esto:
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
Quiero convertir la marca de tiempo a una fecha en este 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
¿Cómo puedo hacer eso?
Sé que esto funciona: perl -pe 's/(\d+)/localtime($1)/e'(de esta pregunta ) pero el formato de salida es Mon Nov 10 02:00:03 2014.
Sé que este comando se puede convertir marcas de tiempo en mi salida deseada: date -d@1415602803 +"%F %H:%M:%S", pero no pude hacer que funcione con awkel uso system("cmd")debido a todas las citas y otras cosas.
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'daawk: line 2: function strftime never definedaquí. ¡Por favor aclare que NO TODO AWK tienestrftime()! Para una solución que se ejecute en la mayoría de los AWK (¿todos?), Utilice eldatecomando externo para mantenerse portátil.