linux - examples - ls grep




¿Cómo uso grep para buscar en el directorio actual todos los archivos que tienen una cadena "hola" pero que solo muestran archivos.h y.cc? (5)

¿Cómo uso grep para buscar en el directorio actual todos y cada uno de los archivos que contengan la cadena "hello" y que muestren solo archivos .h y .cc?


La forma más simple: grep -Ril "Your text" /


Puede pasar comodines en lugar de especificar nombres de archivos o usar stdin.

grep hello *.h *.cc

Si necesita una búsqueda recursiva, tiene una variedad de opciones. Deberías considerar ack .

En su defecto, si tiene GNU find y xargs :

find . -name '*.cc' -print0 -o -name '*.h' -print0 | xargs -0 grep hello /dev/null

El uso de /dev/null garantiza la impresión de los nombres de los archivos; el -print0 y -0 trata de nombres de archivos que contienen espacios (líneas nuevas, etc.).

Si no tiene nombres turbulentos (con espacios, etc.), puede usar:

find . -name '*.*[ch]' -print | xargs grep hello /dev/null

Esto podría recoger algunos nombres que no pretendía, porque la coincidencia de patrón es más difusa (pero más simple), pero de lo contrario funciona. Y funciona con versiones que no son de GNU de find y xargs .


find . -name \*.cc -print0 -or -name \*.h -print0 | xargs -0 grep "hello" find . -name \*.cc -print0 -or -name \*.h -print0 | xargs -0 grep "hello" .

Consulte las páginas del manual para find y xargs para más detalles.


grep -r --include=*.{cc,h} "hello" .

Esto dice: buscar recursivamente (en todos los subdirectorios también) para todos los archivos .cc OR .h que contengan "hello" en este . (directorio actual

De otra pregunta de







grep