如何只处理一列并在BASH中的文本文件中转换unix时间

2 bash awk sed xargs

我有一个像表格的文本文件

367612510.243586 717.860170
367612512.493918 722.249134
367668441.429983 692.407935
367668479.810461 692.407935
367668482.618858 727.953771
367668515.150386 727.953771
Run Code Online (Sandbox Code Playgroud)

第一列是UNIX时间,第二列是某个值.我想在BASH中显示带有人类可读日期和时间的列表.怎么做?

可以使用额外的脚本文件和xargs来完成它,但我正在寻找在一行中完成它的方法.

Fre*_*ihl 6

尝试

awk '{print strftime("%c",$1)}' input.txt
Run Code Online (Sandbox Code Playgroud)

另一种在bash中使用while循环的方法

while read d _; do date -d @$d; done < input.txt
Run Code Online (Sandbox Code Playgroud)

更新:

bash解决方案也可以打印第二个字段

while read f1 f2; do echo $(date -d @$f1) $f2; done < input.txt
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,它的确有效!我的命令是'awk'{print strftime("%c",$ 1),$ 2}'input.txt`. (2认同)