Posible duplicado:
¿Cómo puedo grep en los archivos de origen para algún texto?
¿Cuál es el comando para buscar texto específico en tipos de archivo específicos, recursivamente, en el directorio actual?
Posible duplicado:
¿Cómo puedo grep en los archivos de origen para algún texto?
¿Cuál es el comando para buscar texto específico en tipos de archivo específicos, recursivamente, en el directorio actual?
find . -type f -name '*.extension' | xargs grep "string"
Este comando ejecuta find en el directorio local (.) Para cualquier archivo con nombres que coincidan con el patrón * .extension, luego ejecuta grep para "string" en los resultados de find . Tenga en cuenta que find es inherentemente recursivo. Siempre que pueda diferenciar los archivos que desea de los archivos que no tiene en función del nombre, esto debería funcionar para usted.
print0
opción para estar más seguro.
find -print0
no ayudará, también use xargs -0
:find . -type f -name "*.ext" -print0 | xargs -0 grep "string"
Para enumerar el nombre del archivo, el número de línea en el archivo especificado y la línea aparece el texto:
for x in *.xxx; do [ -r $x ] | cat $x | grep -n TEXT | xargs printf "$x:%s\n";done
Solo se ejecutará en el directorio actual, pero lo formateará bien para usted.
ack-grep
, puede usar los ejemplos en la pregunta como un comienzo (como dije), es decir, lasfind | xargs | grep
líneas. Para la salida específica,man grep
siempre es útil leer.grep -r --include=*.<type> "<string>" .
, lo que funcionó. Desafortunadamente, la página de manual no es muy sencilla al mencionar el punto final.