如何在unix shell中将时间戳文件转换为日期格式

时间:2013-09-12 05:16:16

标签: shell date awk timestamp

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

1370189811
1370189830
1370189851
1370189859
1370189889
1370189890
1370188951
1370188955
1370188976
1370188981

我首先将文件修改为这种格式:

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

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

然后对于每一行:1970-01-01 UTC 1370188981秒,我想在每一行上执行日期-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命令?感谢

1 个答案:

答案 0 :(得分:2)

这是一个开始:

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

您可以调整strftime格式,直到获得所需内容。