sort, uniq, wc, cut, tr
Text, Pipes & Filter
Kleine Filter, große Wirkung
Linux bietet viele kleine Werkzeuge, die jeweils eine Aufgabe erledigen und sich per Pipe kombinieren lassen. Fünf besonders nützliche sind sort, uniq, wc, cut und tr. Gemeinsam wertest du damit Listen und Logdateien blitzschnell aus.
sort – sortieren
$ sort namen.txt # alphabetisch $ sort -r namen.txt # umgekehrt (absteigend) $ sort -n zahlen.txt # numerisch (1, 2, 10 statt 1, 10, 2) $ sort -k2 -n daten.txt # nach Spalte 2 numerisch
Wichtig: Ohne -n sortiert sort als Text, dann steht „10“ vor „2“. Für Zahlen immer -n verwenden.
uniq – Duplikate behandeln
uniq entfernt aufeinanderfolgende doppelte Zeilen – deshalb fast immer nach sort:
$ sort liste.txt | uniq # Duplikate entfernen $ sort liste.txt | uniq -c # mit Häufigkeitszähler $ sort liste.txt | uniq -d # nur die Duplikate zeigen
$ sort log.txt | uniq -c | sort -nr | head
58 GET /index.html
31 GET /style.css
wc – zählen
$ wc -l datei.txt # Zeilen zählen $ wc -w datei.txt # Wörter zählen $ wc -c datei.txt # Bytes zählen $ ls | wc -l # Anzahl Dateien im Verzeichnis
cut – Spalten herausschneiden
$ cut -d: -f1 /etc/passwd # Feld 1, Trenner Doppelpunkt $ cut -d, -f1,3 daten.csv # Felder 1 und 3 aus CSV $ cut -c1-10 datei.txt # Zeichen 1 bis 10
-d setzt das Trennzeichen, -f wählt Felder, -c wählt Zeichenpositionen.
tr – Zeichen ersetzen
$ echo "hallo" | tr 'a-z' 'A-Z' # HALLO (Großbuchstaben) $ echo "a,b,c" | tr ',' '\n' # Kommas zu Zeilenumbrüchen $ tr -d ' ' < datei.txt # alle Leerzeichen löschen $ tr -s ' ' < datei.txt # mehrfache Leerzeichen zu einem
Warum steht uniq in Pipelines meist hinter sort?
Praxis & Hinweise
Diese Werkzeuge spielen ihre Stärke erst kombiniert aus. Eine typische Auswertung lautet cut → sort → uniq -c → sort -nr. Für komplexere, bedingungsabhängige Auswertungen greifst du zu awk. Achte bei cut auf das richtige Trennzeichen – bei mehreren Leerzeichen als Trenner ist awk zuverlässiger, da cut nur ein einzelnes Trennzeichen kennt.