shell – Finn Christiansen https://blogarchive.finnchristiansen.de Softwareentwickler mit einer Vorliebe für freie Software und GNU / Linux Sat, 08 Dec 2018 16:50:58 +0000 de-DE hourly 1 https://wordpress.org/?v=5.1.1 https://blogarchive.finnchristiansen.de/wp-content/uploads/2017/01/cropped-FinnsBlog512-32x32.png shell – Finn Christiansen https://blogarchive.finnchristiansen.de 32 32 Zeilen einer Datei zählen und nach Häufigkeit sortieren https://blogarchive.finnchristiansen.de/2016/08/05/zeilen-einer-datei-zaehlen-und-nach-haeufigkeit-sortieren/ https://blogarchive.finnchristiansen.de/2016/08/05/zeilen-einer-datei-zaehlen-und-nach-haeufigkeit-sortieren/#comments Fri, 05 Aug 2016 05:27:56 +0000 https://www.finnchristiansen.de/?p=157 Continue reading ]]> Was ein wenig wie eine Excel Problemstellung klingt, erledigt der geübte GNU / Linux Anwender in der Shell schnell und einfach mit den GNU coreutils sort und uniq. Mit den beiden Anwendungen lassen sich zwar noch jede Menge weiterer Probleme lösen, aber da ich dieses Kommando in den letzten Jahren gefühlt recht häufig gebraucht habe, möchte ich es hier kurz festhalten.

Als Beispiel dient eine Textdatei mit folgendem Inhalt:

rot
blau
rot
rot
gruen
gelb
blau
rot
lila
blau

Was hier ein paar Farben sind, können in der Praxis Ausschnitte aus Log-Dateien, Spalten von CSV Dateien oder Ähnliches sein. Möchte man nun die Häufigkeiten der Farben zählen und entsprechend sortieren, muss zuerst die Datei selbst sortiert werden (

sort testfile.txt
). Die Zeilen werden gezählt und doppelte Einträge entfernt (
uniq -c
), die Häufigkeit wird an den Anfang der Zeile geschrieben. Am Ende wird das Ergebnis noch einmal nach der Häufigkeit, die am Anfang der Zeile steht, in absteigender Reihenfolge sortiert (
sort -nr
).

Das vollständige Kommando ist eigentlich recht überschaubar und liefert folgendes Ergebnis:

sort testfile.txt | uniq -c | sort -nr
      4 rot
      3 blau
      1 lila
      1 gruen
      1 gelb

]]>
https://blogarchive.finnchristiansen.de/2016/08/05/zeilen-einer-datei-zaehlen-und-nach-haeufigkeit-sortieren/feed/ 1