【问题标题】:AWK date to epochAWK 日期到纪元
【发布时间】:2012-04-28 03:58:34
【问题描述】:

我有以下从文件中返回日期的命令

tail -1 MyFile | awk -F ',' '{print $7}'

像这样返回日期04/16/12 20:44:19

我想通过以某种方式将 $7 输入 date -d $7 +%s 来修改 awk 命令,从而将该日期转换为纪元时间

【问题讨论】:

    标签: linux bash unix awk


    【解决方案1】:

    我觉得awk这个工作有点重,cut可能会轻一点:

    tail -1 MyFile | date -d "`cut -d, -f7`" +%s
    

    当然你也可以使用awk 来做到这一点:

    tail -1 MyFile | date -d "`awk -F, '{ print $7 }'`" +%s
    

    【讨论】:

    • 现在已经使用 cut 虽然我确实也可以使用 awk。谢谢。
    【解决方案2】:

    GNU awk 具有 内置 时间函数:

    tail -1 infile | awk -F, '{
      split($7, t, /[/: ]+/)
      t[3] = t[3] > 69 ? 19 t[3] : 20 t[3]
      print mktime(t[3]" "t[1]" "t[2]" "t[4]" "t[5]" "t[6]) 
      }'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2016-11-02
      • 2019-12-09
      • 2017-06-22
      相关资源
      最近更新 更多