grep: Como excluir diretórios?

grep: Como excluir diretórios?

Ao usar grep com curingas como em

grep -in github */*

para cada diretório grepmostra muitas mensagens como

grep: dir1/dir2: Is a directory

Como suprimir essas mensagens?

Usar a bandeira --exclude-dirnão funciona para minha surpresa.

Estou usando grep (BSD grep) 2.5.1-FreeBSDno MacOS.

Responder1

-d skipfará com que o grep pule diretórios:

grep -in -d pular github/

De acordo comesta página de manual do MaxOSessa opção deve funcionar para MacOS grep. Se acontecer que isso não funciona com o grep do MacOS, você pode instalar entãoGerenciador de pacotes Homebrew MacOSe então use o Homebrew para instalar oVersão GNU do grep, já que GNU grep suporta -d skip(embora nesse caso você tenha que tornar o diretório que contém GNU grep o primeiro em sua PATHvariável ambiental).

Responder2

Use findparaencontrararquivos e grepparag/re/pdentro dos arquivos:

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

Há grandes pistas sobre o propósito de cada ferramenta em seus nomes :-).

informação relacionada