Eu sou um novato no Linux. Eu preciso procurar por uma string "teststring" em todos os arquivos * .java que estejam em / home / user1 / (incluindo subpastas). Como posso fazer isso no linux via comando shell.
Eu sou um novato no Linux. Eu preciso procurar por uma string "teststring" em todos os arquivos * .java que estejam em / home / user1 / (incluindo subpastas). Como posso fazer isso no linux via comando shell.
Respostas:
A maneira mais fácil é usar os recursos do GNU grep:
grep -r --include '*.java' teststring /home/user1
Se você está em outra variante unix que não possui GNU grep, aqui está uma maneira portátil:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
usando ack você apenas digita:cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
Encontrei. A publicação, pois pode ajudar alguém.
find /home/user01 -name *.java | xargs grep "teststring"
Corrija se existe alguma maneira melhor.
-print0
e -0
quando tubulação find
para xargs
o trabalho corretamente com arquivos que podem ter espaços ou novas linhas em seus nomes:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"