find . -name '*.java' | xargs grep 'string'
find . -name '*.java' | xargs grep -H 'string' # if you want filenames too
Estou pesquisando em arquivos Java por alguma ocorrência de uma frase:
encontre. -name '* .java' | xargs grep -l 'string'
Como eu altero esse comando para imprimir no shell todas as linhas que contêm uma correspondência?
grep -HR "string" *.java
Tente usar o ack, disponível em betterthangrep.com
ack string --java
Se os seus nomes de arquivos contêm espaço, 'ou "você deve olhar para o GNU Parallel www.gnu.org/software/parallel /
find . -name '*.java' | parallel grep 'string'
Dependendo do seu sistema, ele pode rodar mais rápido que o grep seqüencial, pois isso pode usar várias CPUs. Muitas vezes, porém, a velocidade do disco será o fator limitante.
Assista ao vídeo de introdução ao GNU Parallel: link