我有一个包含此文件:
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")
。
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
给awk: line 2: function strftime never defined
这里。请说明不是每个AWK都有strftime()
!对于在大多数(全部?)AWK中运行的解决方案,请使用外部date
命令保持可移植性。