1

我有一个文件,每一行都是时间戳。我想将每一行转换为日期格式。文件内容如下:

1370189811
1370189830
1370189851
1370189859
1370189889
1370189890
1370188951
1370188955
1370188976
1370188981

我首先将文件转换成这种格式:

1970-01-01 UTC 1370189811 秒
1970-01-01 UTC 1370189830 秒
1970-01-01 UTC 1370189851 秒
1970-01-01 UTC 1370189859 秒
1970-01-01 UTC 1370189889 秒
1970-01-01 UTC 1370189890 秒
1970-01-01 UTC 1370188951 秒
1970-01-01 UTC 1370188955 秒
1970-01-01 UTC 1370188976 秒
1970-01-01 UTC 1370188981 秒

使用命令 awk: awk '{ printf ("1970-01-01 UTC %10d seconds\n" , $1) }' test > test1

然后对于每一行:1970-01-01 UTC 1370188981 秒,我想在每一行上执行 date -u。例如:

shijiex@localhost:~/Desktop$ date -d '1970-01-01 UTC 1284117137 seconds' 
Fri Sep 10 19:12:17 CST 2010

那将输出与此时间戳对应的日期..

.. 我写:

awk  '{date -d $1}' test1 

但没有输出.. 我应该如何编写这个 awk 命令?谢谢

4

1 回答 1

2

这是一个开始:

$ awk '{ print(strftime("%F", $1), $1) }' file

你可以调整你的strftime格式,直到你得到你想要的。

于 2013-09-12T05:21:33.233 回答