Data Processing: sort, uniq & cut (Artikel 256)
Beherrschung der klassischen Linux Text-Tools. Erfahren Sie alles über das Sortieren von Daten, das Finden von Dubletten und die schnelle Extraktion von Spalten.
# Data Processing: Das Trio sort, uniq und cut
TL;DR / Management Summary Während
awk(Artikel 255) die Allzweckwaffe ist, sind sort, uniq und cut die Spezialisten für schnelle Datenanalysen. Ein Senior Admin kombiniert diese Tools in Pipes, um aus Millionen von Zeilen innerhalb von Sekunden Berichte zu generieren (z.B. “Die Top 10 IP-Adressen in meinem Web-Log”). Wer diese Tools beherrscht, braucht für einfache Reportings kein Excel mehr.
# 1. Einführung & Architektur
Die spezialisierte Pipeline.
Diese Tools folgen dem Unix-Prinzip: “Do one thing and do it well.”
- cut: Extrahiert Felder (wie awk, aber schneller/einfacher).
- sort: Sortiert Zeilen (alphabetisch oder numerisch).
- uniq: Findet oder zählt identische Zeilen (benötigt sortierte Eingabe!).
# Der Analyse-Flow (Mermaid)
graph LR
A[Raw Log File] -->|cut| B[Column: IPs]
B -->|sort| C[Sorted IPs]
C -->|uniq -c| D[Counted Unique IPs]
D -->|sort -rn| E[Top List]
E -->|head| F[Final Result]
# 2. cut: Felder schnell extrahieren
Die Kettensäge für Text.
Wenn Sie nur eine bestimmte Spalte aus einer CSV oder einem Log brauchen:
# Zeige nur die 1. Spalte einer CSV (Trenner: Komma)
cut -d',' -f1 data.csv
# Zeige Zeichen 1 bis 10 jeder Zeile
cut -c1-10 system.log
# 3. sort: Ordnung ins Chaos bringen
Numerisch vs. Alphabetisch.
# Wichtige Flags
-n: Numerisch sortieren (10 kommt nach 2).-r: Reverse (Umgekehrt).-k: Key (Bestimmte Spalte sortieren).-h: Human Readable (Sortiert 1K, 1M, 1G korrekt).
# Sortiere Prozesse nach RAM-Verbrauch (Spalte 4)
ps aux | sort -k4 -rn | head
# 4. uniq: Dubletten bändigen
Zählen und Filtern.
Wichtig: uniq erkennt Dubletten nur, wenn sie direkt hintereinander stehen. Nutzen Sie davor immer sort!
# Top 10 IPs ermitteln
cut -d' ' -f1 access.log | sort | uniq -c | sort -rn | head -n 10
uniq -c: Zählt die Vorkommen (Count).
# 5. Troubleshooting & “War Stories”
Wenn die Statistik lügt.
# Story 1: “Der 10 vs 2 Fehler”
Symptom: Ein Admin sortiert Dateigrößen und wundert sich, dass eine 100MB Datei vor einer 20MB Datei erscheint.
Ursache: Standard-Sortierung ist alphabetisch (1 kommt vor 2).
Lösung: Nutzen Sie immer -n (numerisch) oder -h (human-readable).
# Story 2: “Trailing Spaces”
Symptom: uniq zählt identische Zeilen doppelt.
Ursache: Manche Zeilen enthalten unsichtbare Leerzeichen am Ende.
Lösung: Nutzen Sie sed 's/[[:space:]]*$//' vor dem Sortieren, um Leerzeichen am Ende zu entfernen.
# 6. Fazit & Empfehlung
- cut: Nutzen Sie
cutfür einfache Trenner (CSV,/etc/passwd). Bei variablen Leerzeichen (wie inps) nutzen Sieawk. - sort: Nutzen Sie immer
-V(Version Sort), wenn Sie Software-Versionen oder Dateinamen mit Nummern sortieren. - Wartung: Diese Tools sind extrem stabil und in jeder BusyBox/Alpine Umgebung vorhanden.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Numerisch sortieren | sort -n |
| Human readable sort | sort -h |
| Eindeutige Zeilen | sort -u |
| Dubletten zählen | uniq -c |
| Nur Dubletten zeigen | uniq -d |
| Spalte 1 und 3 | cut -f1,3 |
| Invertiert sortieren | sort -r |
| CSV Spalte 2 | cut -d',' -f2 |