Tengo un árbol de directorios que consta de varios miles de subdirectorios, pero con frecuencia necesito grep solo un pequeño subconjunto de esos directorios. ¿Cómo puedo grep
solo aquellos subdirectorios que coinciden con un patrón?
Por ejemplo, supongamos que tengo estos subdirectorios que quiero grep:
...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...
Las ...
entradas anteriores representan los miles de otros directorios que no quiero incluir.
Suponiendo que estoy buscando todas las instancias de bar
, si hago esto:
grep -n --recursive bar *
Encontraría lo que estoy buscando, pero en todos los directorios. ¿Cómo puedo buscar solo en aquellos subdirectorios que coinciden con el patrón foo*
?
/foo
y amigos? ¿En/foo
y/foo/bar
y/foo/bar/qux
y así sucesivamente pero no/wibble/foo
? En/foo
y/wibble/foo
pero no/foo/bar
? En/foo
y/foo/bar
y/wibble/foo
pero no/elsewhere
?Respuestas:
Puede usar grep y encontrar la combinación de la siguiente manera:
O puedes usar
O usando solo grep
fuente
foo*
?grep -R "test" /foo*
) es exactamente lo que estoy haciendo ahora, así que aceptaré.{}
y la barra diagonal inversa?intente,
grep foo* <other parts>
por ejemplo:grep foo* -name "book*"
fuente
bar
todos los archivos en los subdirectorios nombradosfoo*
, ¿debería ser asígrep --recursive bar ./foo*/*
:?