Tef*_*Ted 8 regex unix command-line find
我有这个命令:
find reports/ -type f -mtime +90 -regex ".*\.\(csv\|sql\|txt\|xls\|zip\)"
Run Code Online (Sandbox Code Playgroud)
我需要加强它,以便文件扩展名之前的部分匹配YYYY/MM/DD模式,如下所示:
reports/2010/10/10/23.txt
reports/2010/10/10/23.xls
reports/2010/10/10/26.csv
reports/2010/10/10/26.sql
reports/2010/10/10/26.txt
reports/2010/10/10/26.xls
reports/2010/10/10/27.csv
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何排列\d和parens逃避工作.
更新:根据以下接受的答案,这对我有用:
find reports/ -type f -mtime +90 -regex "reports/201[01]/\([1-9]\|1[012]\)/\([1-9]\|[12][0-9]\|3[01]\)/.*\.\(csv\|sql\|txt\|xls\|zip\)"
Run Code Online (Sandbox Code Playgroud)
这是我过去使用的:
Year: (19|20)[0-9][0-9]
Month: 0[1-9]|1[012]
Day: (0[1-9]|[12][0-9]|3[01])
Run Code Online (Sandbox Code Playgroud)
你可以把它们放在你的正则表达式中.当然,你必须逃离支架和管道.