tengo este comando:expresión regular para los dígitos en Unix encontrar comando
find reports/ -type f -mtime +90 -regex ".*\.\(csv\|sql\|txt\|xls\|zip\)"
Y necesito a la carne hacia arriba de modo que la pieza antes de las extensiones de archivo coincide con un patrón YYYY/MM/DD
, así:
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
Pero no obtengo ninguna permutación de \d
y los parientes escapan al trabajo.
ACTUALIZACIÓN: esto es lo que funcionó para mí en base a la respuesta aceptada a continuación:
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\)"
Tenga en cuenta que la opción -regex no es estándar en las plataformas Unix. Creo que solo puede estar en GNU find. Puede hacer un método más estándar conectando la salida a egrep. – JOTN