【问题标题】:awk: format date string from YYYYMMDD to YYYY-MM-DDawk:将日期字符串从 YYYYMMDD 格式化为 YYYY-MM-DD
【发布时间】:2014-04-23 17:19:31
【问题描述】:

我有一个 CSV 文件,我使用 awk 解析它,因为我不需要所有列。 我遇到的问题是一列是日期,但格式为YYYYMMDD,但我需要YYYY-MM-DD,但我不知道如何实现。

我已经尝试过使用split($27, a),但它没有拆分它 - 所以a[0] 返回整个字符串。

【问题讨论】:

    标签: linux string bash awk format


    【解决方案1】:

    你可以使用substr:

    printf "%s-%s-%s", substr($27,0,4), substr($27,5,2), substr($27,7,2)
    

    假设第 27 个 字段是20140318,这将产生2014-03-18

    【讨论】:

      【解决方案2】:

      使用您的awk 输出作为date -d 的输入,例如

      $ date -d 20140918 +'%Y-%m-%d'
      2014-09-18
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        相关资源
        最近更新 更多