imprimindo linhas correspondentes ao greping todos os arquivos em um diretório

1

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?

    
por John Kube 03.04.2010 / 20:37

4 respostas

2
find . -name '*.java' | xargs grep 'string'

find . -name '*.java' | xargs grep -H 'string' # if you want filenames too
    
por 03.04.2010 / 20:40
0
grep -HR "string" *.java
    
por 04.04.2010 / 10:11
0

Tente usar o ack, disponível em betterthangrep.com

ack string --java
    
por 03.05.2010 / 20:59
0

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

    
por 29.06.2010 / 16:51