desenv-web-rp.com

Como posso recussivamente engraçar arquivos específicos em um diretório?

Eu sou novo para Linux e Grep, e tentando encontrar o meu caminho.

Usando find -name *.Java Eu sou capaz de encontrar os nomes de todos os arquivos Java em um diretório específico. Suponha que eu queira contar o número de vezes foo ocorre nesses arquivos, como Eu faria isso?

Eu tenho tentado coisas como:

grep -r "foo" *.Java

e recebendo respostas como:

grep:  *.Java:  No such file or directory

Alguma ideia?

14
Eric Wilson
find . -name '*.Java' | xargs grep <your pattern here>
16
arathorn

Há uma ferramenta especialmente projetada para este tipo de necessidade: ACK .

aCK é uma ferramenta como grep, destinada a programadores com grandes árvores de código fonte heterogêneo

Também leia o "Top 10 razões para usar o ACK em vez de Grep." na página ACK .

6
user4126

A respeito:

grep -irn --include="*\.Java" somePhrase *
3
Manatok

encontrar . -type fname '* .java' -print0 | Xargs -0 grep -wo 'foo' | wc -l.

0
wudeng