2010-04-07 20 views
5

Hola, estoy tratando de encontrar todos los archivos css js & en un comando de búsqueda. Probé todo lo siguiente, pero fue en vano:Linux find command gotcha?

find WebContent -name "*.[jc]ss?" 

find WebContent -name "*.[jc]ss{0,1}" 

find WebContent -name "*.[jc][s]{1,2}$" 

find WebContent -name "*.[jc]s{1,2}" 

find WebContent -name "*.[jc]s[s]?" 

¿Ahora qué?

Respuesta

6

-name acepta argumentos que son globs, no son expresiones regulares. Usted podría utiliza -regex si desea utilizar expresiones regulares, pero la opción -o (que significa "o") es probablemente la solución más simple:

find WebContent -name "*.js" -o -name "*.css" 
+0

gracias a todos, supongo que sólo estaba tratando de cavar profundamente en conseguir que funcione utilizando exps reg. Lo obtuve funcionando usando: find WebContent -type f \ (-name "* .css" -o -name "* .js" \) – rabbit

0

probar este

find WebContent -regextype posix-extended -regex '.*\.(css|js)$' 
-1

se puede hacer booleano expresiones con hallazgo. -o significa OR.

find -name "*.js" -o -name "*.cpp" 
+0

-1: necesitas citar o escapar esos '*' s, p. 'find -name \\ *. js -o -name \\ *. cpp' o' find -name "* .js" -o -name "* .cpp" ' –

+0

parece funcionar bien incluso cuando no lo hago . –

+1

@Omry: encontrará los archivos coincidentes en el directorio actual, pero no en los subdirectorios, porque el globo se expande inmediatamente. Inténtelo –

0

usar el bolso -iname opción insensible

find WebContent \(-iname "*.js" -o -iname "*.css" \)