[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