J'ai Apache fichier journal, access.log , comment compter le nombre d'occurrences de ligne dans ce fichier ? par exemple le résultat de cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]' est
a.php
b.php
a.php
c.php
d.php
b.php
a.php
le résultat que je veux est :
3 a.php
2 b.php
1 d.php # order doesn't matter
1 c.php
Réponse acceptée :
| sort | uniq -c
Comme indiqué dans les commentaires.
Transférer la sortie dans sort organise la sortie par ordre alphabétique/numérique.
Ceci est une exigence car uniq correspond uniquement aux lignes répétées, c'est-à-dire
a
b
a
Si vous utilisez uniq sur ce fichier texte, il renverra ceci :
a
b
a
C'est parce que les deux a les s sont séparés par le b – ce ne sont pas des lignes consécutives. Cependant, si vous triez d'abord les données par ordre alphabétique comme
a
a
b
Puis uniq supprimera les lignes répétitives. Le -c option de uniq compte le nombre de doublons et fournit une sortie sous la forme :
2 a
1 b
Références :
sort(1)uniq(1)