324 votes

compter toutes les occurrences de chaîne dans beaucoup de fichiers avec grep

J'ai un tas de fichiers journaux. Je dois savoir combien de fois une chaîne apparaît dans tous les fichiers.

 grep -c string *
 

refaire

 ...
file1:1
file2:0
file3:0
...
 

En utilisant pipe, je n'ai pu obtenir que des fichiers ayant une ou plusieurs occurrences:

 grep -c string * | grep -v :0

...
file4:5
file5:1
file6:2
...
 

Comment obtenir uniquement le compte combiné? (S'il renvoie file4:5, file5:1, file6:2 je veux revenir 8.)

322voto

Jeremy Lavine Points 1088

Cela fonctionne pour plusieurs occurrences par ligne:

 grep -o string * | wc -l
 

302voto

Bombe Points 34185
cat * | grep -c string

29voto

Kaofu Points 101
<pre><code></code><p>seront pris en compte les occurrences multiples en ligne </p></pre>

26voto

Michael Haren Points 42641

Au lieu d’utiliser -c, juste redirigez-le vers wc -l.

Cette liste chaque occurrence sur une seule ligne et ensuite compter le nombre de lignes.

Cela va manquer les instances où la chaîne apparaît 2 fois sur une seule ligne, bien que.

18voto

Joachim Sauer Points 133411
<pre><code></code><p><code></code>.</p></pre>

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