Encuentra archivos con ciertas extensiones


67

¿Cómo puedo usar findpara encontrar todos los archivos que tienen una extensión .xlso .csv? He visto una -regexopción pero no sé cómo usarla.

Respuestas:


115

¿Por qué no simplemente usar esto?

find -name "*.xls" -o -name "*.csv"

No necesitas expresiones regulares para esto.

Si absolutamente quieres usar regex simplemente usa

find -regex ".*\.\(xls\|csv\)"

8
Mejor respuesta que la mía. +1.
Paul Tomblin

1
¿Por qué se necesita una barra invertida antes del paréntesis? Sé que no funciona sin él, pero parece que debería.

1
porque son expresiones regulares de emacs por defecto. use -regextype para cambiar eso.

44
Solo para el registro: nunca puedo recordar qué herramientas quieren "\ (" para agrupar y cuáles quieren "(". Siempre tengo que intentarlo para saberlo.
Joachim Sauer,

1
el ejemplo de expresiones regulares no funciona
hostmaster

12
find . \( -name  \*.xls -o -name \*.csv \) -print

No sabía sobre la opción -o. ¡Gracias!

1
¿Necesita paréntesis? encontrar . '(' -name * .xls -o -name * .csv ')' - print

@ Adrian - no, no lo hace. No estoy seguro de si necesitaría parens en un hallazgo que no sea GNU donde "-print" no era ya la acción predeterminada.
Paul Tomblin

55
Bueno, GNU find (predeterminado en ubuntu 11.04) funciona correctamente tanto con parens como con -print O sin (parens y -print). Pero find . -name \*.xls -o -name \*.csv -printsolo genera archivos que coinciden con .csv,
bbaja42

Tienes razón, necesito a los padres.
Paul Tomblin el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.