【问题标题】:How to process only one column and convert unix time in text file in BASH如何仅处理一列并在 BASH 的文本文件中转换 unix 时间
【发布时间】:2013-04-28 19:05:03
【问题描述】:

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

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 来完成,但我正在寻找一种方法来完成它。

【问题讨论】:

    标签: bash sed awk xargs


    【解决方案1】:

    试试

    awk '{print strftime("%c",$1)}' input.txt
    

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

    while read d _; do date -d @$d; done < input.txt
    

    更新:

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

    while read f1 f2; do echo $(date -d @$f1) $f2; done < input.txt
    

    【讨论】:

    • 谢谢,它有效!我的命令是awk '{print strftime("%c",$1), $2}' input.txt
    • 注意:第一个变种只适用于 gawk,但不适用于 Debian 默认的 mawk。
    • 是的,strftime() 是 gawk 特有的。发呆。不要执行 while 循环。
    猜你喜欢
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    相关资源
    最近更新 更多