1 votes

impression des lignes correspondantes lors de la recherche de tous les fichiers dans un répertoire

Je recherche dans les fichiers Java l'occurrence d'une phrase :

trouver . -name '*.java' | xargs grep -l 'string' (chaîne)

Comment modifier cette commande pour imprimer dans le Shell toutes les lignes qui contiennent une correspondance ?

2voto

Deborah Points 31
find . -name '*.java' | xargs grep 'string'

find . -name '*.java' | xargs grep -H 'string' # if you want filenames too

1voto

user31894 Points 2591
grep -HR "string" *.java

0voto

Andy Lester Points 1173

Essayez d'utiliser ack, disponible sur betterthangrep.com.

ack string --java

0voto

Ole Tange Points 4059

Si vos noms de fichiers contiennent des espaces, des ' ou des ", vous devriez consulter le site GNU Parallel www.gnu.org/software/parallel/.

find . -name '*.java' | parallel grep 'string'

En fonction de votre système, cette méthode peut être plus rapide que la méthode séquentielle grep, car elle peut utiliser plusieurs processeurs. Souvent, cependant, la vitesse du disque sera le facteur limitant.

Regardez la vidéo d'introduction à GNU Parallel : http://www.youtube.com/watch?v=OpaiGYxkSuQ

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X