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

如何在BASH中只处理一列并在文本文件中转换unix时间,bash,sed,awk,xargs,Bash,Sed,Awk,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 其中第一列是UNIX时间,第二列是某个值。我想在BASH中显示这个列表,其中包含人类可读的日期和时间。怎么做 可以使用额外的脚本文件和

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

367612510.243586 717.860170
367612512.493918 722.249134
367668441.429983 692.407935
367668479.810461 692.407935
367668482.618858 727.953771
367668515.150386 727.953771
其中第一列是UNIX时间,第二列是某个值。我想在BASH中显示这个列表,其中包含人类可读的日期和时间。怎么做

可以使用额外的脚本文件和xargs来完成,但我正在寻找一种方法,只需一行即可完成。

试试看

awk '{print strftime("%c",$1)}' input.txt
在bash中使用while循环的另一种方法

while read d _; do date -d @$d; done < input.txt
读取数据时
;do date-d@$d;完成
更新:

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

while read f1 f2; do echo $(date -d @$f1) $f2; done < input.txt
读取f1 f2时
;do echo$(日期-d@$f1)$f2;完成
谢谢,它很有效!我的命令是
awk'{print strftime(“%c”,$1),$2}'input.txt
。注意:第一个变量仅在gawk中有效,但不在Debian中默认的mawk中有效。是的,strftime()特定于gawk。发呆。不要做while循环。