grep: ¿Cómo excluir directorios?

grep: ¿Cómo excluir directorios?

Cuando se usa grep con comodines como en

grep -in github */*

para cada directorio grepmuestra muchos mensajes como

grep: dir1/dir2: Is a directory

¿Cómo suprimir estos mensajes?

Para mi sorpresa, usar la bandera --exclude-dirno funciona.

Lo estoy usando grep (BSD grep) 2.5.1-FreeBSDen MacOS.

Respuesta1

-d skiphará que grep omita directorios:

grep -in -d saltar github/

De acuerdo aesta página de manual de MaxOSesa opción debería funcionar para MacOS grep. Si resulta que esto no funciona con MacOS grep, puedes instalarlo.Administrador de paquetes casero de MacOSy luego usar Homebrew para instalar elVersión GNU de grep, ya que GNU grep es compatible -d skip(aunque en ese caso tendrás que hacer que el directorio que contiene GNU grep sea el primero en tu PATHvariable ambiental).

Respuesta2

Usarfind paraencontrararchivos ygrep ag/re/pdentro de los archivos:

find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;

Hay grandes pistas sobre el propósito de cada herramienta en sus nombres :-).

información relacionada