Existe uma maneira de grep com um tipo de arquivo restrito?

4

agora eu estou usando algo assim:

find . -name "*.xml" | xargs grep -l "foobar"

funciona, mas eu queria saber se o grep tem essa funcionalidade embutida?

    
por numan 18.05.2012 / 18:00

3 respostas

7

O POSIX grep não tem essas opções, mas coreutils grep faz isso.

grep -r --include='*.xml' -l foobar .

deve fazer isso.

FreeBSD grep (e OS X) parecem ter a mesma coisa, Solaris & AIX falta-lhes AFAICT.

    
por 18.05.2012 / 18:08
1

Você também pode fazer:

find . -name "*.xml" -exec grep -l "foobar" {} \;
    
por 19.05.2012 / 22:57
0

Você pode usar ack onde o comando seria

ack --xml -l foobar

Observe que os tipos de arquivos de ack significam que ele não considera apenas os arquivos * .xml. Qualquer arquivo com a extensão .xml, .dtd, .xsl, .xslt ou .ent será selecionado para pesquisa sob o sinalizador --xml. Veja ack --help-types para uma lista de tipos e extensões.

    
por 21.08.2012 / 20:52