Se você tem o GNU grep
, pode usar a opção --exclude=GLOB
, como
grep -r --exclude='*.sql' pattern dir/
Como recursivamente grep
arquivos dentro de determinadas pastas, exceto alguns tipos de arquivo?
Por exemplo, estou procurando uma string dentro da minha pasta de espaço de trabalho, mas ela acaba pesquisando dentro de arquivos sql e gera seqüências de caracteres serializadas.
Portanto, neste caso, gostaria de grep
da pasta do espaço de trabalho, exceto arquivos sql.
De preferência, estou procurando por um de uma linha, se possível.
Isso fará isso para você e excluirá arquivos .sql e .txt:
find /some/dir -type f ! -name '*\.sql' ! -name '*.txt' -print0 | xargs -0 grep 'foobar'
No entanto, parece que o ack seria uma ferramenta muito melhor para o que você está tentando fazer:
ack -a --nosql 'foobar' /some/dir
Tags grep