【发布时间】: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
我试图只获取文件名中的日期部分。例如:
abc-xyz20140417.tar
abc-20120420.tar
abc-efghi19800815.tar
需要输出:
20140417
20120420
19800815
【问题讨论】:
grep -oP '\d{8}' filename
标签: bash shell awk sed scripting
如果文件名中的数字字符只是您需要的日期,那么这里是一个示例:
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
希望对你有帮助。
【讨论】:
假设日期始终是“.tar”之前的最后 8 个字符,这将适用于任何操作系统上的任何 sed:
$ sed 's/.*\(........\).tar$/\1/' file
20140417
20120420
19800815
【讨论】: