如何只获得日期部分?

时间:2014-04-17 17:02:15

标签: bash shell awk sed scripting

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

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

需要输出:

20140417
20120420
19800815

2 个答案:

答案 0 :(得分:0)

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

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

希望它有所帮助。

答案 1 :(得分:0)

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

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