Filenames
使用數學過濾字元串列表
我有一個目錄,其中列出瞭如下文件:
abc201303130110.txt abc201303140511.txt abc201303150112.txt
如您所見,文件名包含日期時間戳。我想返回文件名中值
201303140000
或更高的所有文件。我可以使用 grep 來獲取文件名的日期時間部分,但我不知道如何通過可以執行類似
X > 201303140000
.
如果您
awk
是 GNUawk
,您可以簡單地使用:find . -type f | awk '{ match($0, /2013[0-9]+/,arr)} arr[0] >= 201303140000 '
Perl 來救援!Perl 的
-n
switch 工作有點像sed -n
,而 perl 在匹配和算術方面更強大。dennis@lightning:/tmp/foo$ ls -1 abc201303130110.txt abc201303140511.txt abc201303150112.txt dennis@lightning:/tmp/foo$ ls | perl -ne '$d=$_; $d =~ s/.*?(\d+).*/\1/s; print if $d >= 201303140000' abc201303140511.txt abc201303150112.txt