uniq - trotzdem doppelte einträge

R

raymarine

Grünschnabel
Hallo zusammen,

ich werte ein Maillogfile aus und möchte zu jeder Emailadresse die Anzahl der Einträge haben. Dazu macht ich folgendes:

Code:
cat mail.log | awk '{print $7}' | uniq -c | sort | tail -10

- awk: Nur Eimailadressen
- Uniq: Mehrfacheinträge zusammenfassen
- sort: absteigend sortieren
- tail: die 10 häufigsten ausgeben

Soweit geht das ja. Problem: Das Ergebnis ist definitiv falsch. Wenn ich

Code:
cat mail.log | grep ZEICHENKETTE | wc -l

ausführe, erhalte ich für einzelne Adresse wesentlich höhere Werte als o.g. Auch bei
Code:
cat mail.log | awk '{print $7}' | uniq -c
zeigt sich schon, dass gleich Adresse nicht zusammengefasst werden sondern mehrfach mit geringen Werten ausgegeben werden obwohl sie definitiv gleich sind.

Ich weiß nicht so ich noch suchen soll und uniq ist doch hier das Mittel der Wahl, oder? Wer hat einen Tipp für mich?

Danke!
 
Schmeiß uniq raus , und lass Sort komplett die Arbeit machen. sort -u . Uniq funtioniert nur richtig wenn die Datei schon vorsortiert wäre. Also erst sort und dann uniq
 
ok, mit sort bekomme ich zwar die Emailadresse aus dem Logfile, aber nicht die Anzahl der Einträge zu jeder Adresse. Das ging/geht halt mit uniq so einfach.

Wie kann ich das denn noch lösen?
 
Es ist gelöst!

Mit einem sort vor dem uniq geht es jetzt bestens:
Code:
cat mail.log | awk '{print $7}' | sort | uniq -c | sort | tail -10
 

Ähnliche Themen

Nagiosgrapher erkennt Werte nicht

Probs mit Perl script

Doppelte Dateien finden und löschen

Server-Monitoring mit RRDTool

Zurück
Oben