我有這樣的命令:正則表達式在Unix中位數find命令
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
:
find reports/ -type f -mtime +90 -regex ".*\.\(csv\|sql\|txt\|xls\|zip\)"
我需要來加強它,以便在文件擴展名之前的部分YYYY/MM/DD
模式,像這樣匹配
但我沒有得到\d
和parens轉義工作的任何排列。
UPDATE:這裏是基於下面的接受的答案爲我工作:
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\)"
請注意,-regex選項在Unix平臺上不是標準的。我認爲它可能只在GNU發現。您可以通過將輸出管道輸送到egrep來執行更加標準的方法。 – JOTN 2011-01-10 21:52:48