[LinuxOB] "group by" auf der Konsole
Daniel Dombrowski
daniel.dombrowski at linuxob.de
So Jun 20 23:48:57 CEST 2004
Hallo Liste!
Mal wieder was zum Thema One-Liner und kleine Tools auf der Konsole.
Folgende Problemstellung:
Man hat in einer Datei eine Reihe von Zeilen, die mehrfach vorkommen.
Nun geht es darum, herauszufinden, wie oft die Zeilen in der Datei
vorkommen. Also im Prinzip soetwas, wie man bei mysql mit "group by"
macht: select count(*) as linecount, line from table group by line
order by linecount;
Spontan bin ich da jetzt zu folgendem gekommen (im konkreten Fall ging
es um eine Liste von IPs):
sort -u ip.log | while read IP; do echo `grep $IP ip.log | wc -l` $IP;
done | sort -n
Das ist natürlich jetzt nicht das allerperformanteste (einmal sortieren
und dann zählen wäre performanter), aber es tut seinen Zweck.
Wodrauf ich aber hinaus will: Gibt es solche Funktionalität auch als
einen "fertigen" Befehl auf der Konsole?
Gruss
Daniel
Mehr Informationen über die Mailingliste linux