use ack . É ótimo para pesquisar código-fonte (e não procurar em imagens, ou artefatos RCS, como diretórios .svn)
Estou tentando descobrir como pesquisar "_iterator_tag" em todos os sub-diretórios de forma recursiva e em arquivos com extensões .cpp, .h, .hpp, .cxx, .inl por enquanto tudo o que posso fazer é pesquisar cada um desses tipos de arquivo separadamente como abaixo grep -R "_iterator_tag" --include '* .cpp' Existe uma maneira mais rápida de pesquisar todos esses tipos de arquivos juntos? Obrigado
use ack . É ótimo para pesquisar código-fonte (e não procurar em imagens, ou artefatos RCS, como diretórios .svn)
Você pode especificar várias instâncias de --include
na linha de comando (elas são "ou" juntas).
Editar: especificamente
grep -r --include '*.cpp' --include '*.h' --include '*.hpp' --include '*.cxx' --include '*.inl' "_iterator_tag" /some/path
tente
find /some/path -name \( '*.cpp' -o -name '*.h' -o -name '*.hpp' -o -name '*.cxx' -o -name '*.ini' \) | xargs grep "_iterator_tag"
Eu defino os seguintes aliases no meu .bashrc
ffg() { eval find $1 | xargs -n 1 grep -nH $2 2>/dev/null ; }
fc() { ffg "-name \*.c -o -name \*.cpp" "$*"; }
fh() { ffg "-name \*.h -o -name \*.hpp" $* ; }
fch() { ffg "-name \*.c -o -name \*.cpp -o -name \*.h -o -name \*.hpp" $* ; }
Então, eu costumava fazer:
cd <root subdir>
fch _iterator_tag
Claro que você precisaria de um conjunto diferente de tipos de arquivos.