在文件名中查找带有日期范围的正则表达式

时间:2017-11-28 20:25:09

标签: regex gnu-findutils

我在

等文件夹中的文件
file_2017-01-01.jpg    
file_2017-02-20.jpg    
file_2017-05-10.jpg    
file_2017-09-01-jpg    
file_2017-10-25.jpg    
file_2017-11-04.jpg    
file_2017-12-22.jpg

如何使用find命令列出file_2017-01*file_2017-10*的文件?

find . -regextype posix-awk -regex ".*2017-[01-10]*"无法正常工作。

也不是,find . -maxdepth 1 -type f -name "*2017-[01-10]*"

1 个答案:

答案 0 :(得分:0)

一个角色类一次只匹配一个角色,所以就其自身而言,它不适合所涉及的工作。请考虑一下:

find  . -regextype posix-awk -regex '.*_2017-(0[1-9]|10)-.*' -print

这有两个分支:0[1-9],匹配01到09之间的任何两个字符的字符串;和10,仅匹配确切的字符串10