51 votes

Comment compter les occurrences d'un mot dans tous les fichiers d'un répertoire ?

J'essaie de compter une occurrence de mot particulière dans un répertoire entier. Est-ce possible?

Disons par exemple qu'il existe un répertoire avec 100 fichiers dont tous les fichiers peuvent contenir le mot "aaa". Comment compter le nombre de "aaa" dans tous les fichiers de ce répertoire ?

J'ai essayé quelque chose comme :

  zegrep "xception" `find . -name '*auth*application*' | wc -l 

Mais ça ne marche pas.

105voto

Carlos Campderrós Points 6055

grep -roh aaa . | wc -w

Grep récursivement tous les fichiers et répertoires dans le répertoire actuel en recherchant aaa et en sortie uniquement les correspondances, pas la ligne entière. Ensuite, utilisez simplement wc pour compter le nombre de mots.

7voto

Fredrik Pihl Points 20944

Une autre solution basée sur find et grep .

 find . -type f -exec grep -o aaa {} \; | wc -l

Doit gérer correctement les noms de fichiers contenant des espaces.

1voto

Vijay Points 17992
find .|xargs perl -p -e 's/ /\n'|xargs grep aaa|wc -l

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X