【问题标题】:How to get only the date part?如何仅获取日期部分?
【发布时间】:2014-06-02 01:59:39
【问题描述】:

我试图只获取文件名中的日期部分。例如:

abc-xyz20140417.tar
abc-20120420.tar
abc-efghi19800815.tar

需要输出:

20140417
20120420
19800815

【问题讨论】:

  • grep -oP '\d{8}' filename

标签: bash shell awk sed scripting


【解决方案1】:

如果文件名中的数字字符只是您需要的日期,那么这里是一个示例:

root@localhost:~[0]$ ls -1 abc-*
abc-20120420.tar
abc-efghi19800815.tar
abc-xyz20140417.tar
root@localhost:~[0]$ ls -1 abc-*  | sed 's/[^0-9]//g'
20120420
19800815
20140417

希望对你有帮助。

【讨论】:

    【解决方案2】:

    假设日期始终是“.tar”之前的最后 8 个字符,这将适用于任何操作系统上的任何 sed:

    $ sed 's/.*\(........\).tar$/\1/' file
    20140417
    20120420
    19800815
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      相关资源
      最近更新 更多