Procura por um padrão de texto no linux

16

Sou um novato no Linux. Eu preciso procurar por uma string "teststring" em todos os arquivos * .java que vêm em / home / user1 / (incluindo subpastas). Como posso fazer isso no linux via comando shell.

    
por darthvader 28.11.2010 / 16:08

5 respostas

18

A maneira mais fácil é usar os recursos do GNU grep:

grep -r --include '*.java' teststring /home/user1

Se você estiver em outra variante do unix que não tenha o GNU grep, aqui está uma maneira portátil:

find /home/user1 -name '*.java' -exec grep teststring {} +
    
por 28.11.2010 / 16:41
4

usando ack basta digitar: cd /home/user01 && ack --java teststring

    
por 28.11.2010 / 16:35
4

Para este ack conhecido como ack-grep é o aplicativo matador em minha mente ;)

Você pode usar ack some_string /in/path_y para encontrar some_string em path_y Ou mais simples, ack some_other_string para encontrar some_other_sting no diretório atual.

    
por 28.11.2010 / 17:34
2

Encontrei. Postar como pode ajudar alguém.

find /home/user01 -name *.java | xargs grep "teststring"

Por favor, corrija se houver uma maneira melhor.

    
por 28.11.2010 / 16:28
0
grep -irl teststring *java
    
por 28.11.2010 / 23:23

Tags