I have this command:
find reports/ -type f -mtime +90 -regex ".*\.\(csv\|sql\|txt\|xls\|zip\)"
And I need to beef it up so the part before the file extensions matches a YYYY/MM/DD pattern, like so:
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
But I’m failing to get any permutation of \d and parens escaping to work.
UPDATE: here’s what worked for me based on the accepted answer below:
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\)"
This is what I have used in the past:
You can put these together in your regex. You will, ofcourse, have to escape the brackets and pipes.