我有一个包含此文件的文件:
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
Run Code Online (Sandbox Code Playgroud)
我想将时间戳转换为这种格式的日期:
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
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我知道这有效:(perl -pe 's/(\d+)/localtime($1)/e'来自这个问题)但输出格式是Mon Nov 10 02:00:03 2014.
我知道这个命令可以时间戳转换成我想要的输出:date -d@1415602803 +"%F %H:%M:%S",但我不能使它与工作awk使用system("cmd"),因为所有的报价和诸如此类的东西。
我在 Ubuntu 上运行了这个脚本,但我现在尝试在 OSX 上运行该脚本,但日期的格式似乎不同。
本来我有:
date -d "$MODDATE" +%F" "%H":"%M
其中$MODDATEstat 生成的 unix 时间戳
然而,上述日期函数在 BSD 版本上的工作方式不同。如何将时间戳转换为以下格式的日期: YYYY-MM-DD HH:MM ?