Filter-Befehle
Anzeigen & Zählen
Abschnitt betitelt „Anzeigen & Zählen“cat – Inhalt ausgeben
Abschnitt betitelt „cat – Inhalt ausgeben“cat gibt den Inhalt einer oder mehrerer Dateien nach stdout aus. Ohne Argument liest es von stdin:
cat datei.txt # Datei ausgebencat datei1.txt datei2.txt # mehrere Dateien hintereinandercat datei1.txt datei2.txt > zusammen.txt # zusammenführenAls Filter in einer Pipeline:
cat /etc/passwd | grep roothead und tail – Anfang und Ende
Abschnitt betitelt „head und tail – Anfang und Ende“head datei.txt # erste 10 Zeilen (Standard)head -n 20 datei.txt # erste 20 Zeilenhead -n -5 datei.txt # alles außer den letzten 5 Zeilen
tail datei.txt # letzte 10 Zeilen (Standard)tail -n 20 datei.txt # letzte 20 Zeilentail -n +5 datei.txt # ab Zeile 5 bis zum Endetail -f folgt einer wachsenden Datei in Echtzeit – unverzichtbar für Log-Monitoring:
tail -f /var/log/syslogtail -f /var/log/nginx/access.logwc – zählen
Abschnitt betitelt „wc – zählen“wc (Word Count) zählt Zeilen, Wörter und Zeichen:
wc datei.txt# 42 318 2104 datei.txt# ^ ^ ^# | | Bytes# | Wörter# ZeilenEinzelne Werte:
wc -l datei.txt # nur Zeilenwc -w datei.txt # nur Wörterwc -c datei.txt # nur Bytes
ls /etc | wc -l # Anzahl Einträge in /etcless – seitenweiser Pager
Abschnitt betitelt „less – seitenweiser Pager“less zeigt langen Output seitenweise an – nützlich wenn eine Ausgabe nicht auf den Bildschirm passt:
less datei.txtls -la /etc | lesscat /var/log/syslog | lessNavigation wie in man: Space/b, /suche, q zum Beenden.
Sortieren & Filtern
Abschnitt betitelt „Sortieren & Filtern“sort – sortieren
Abschnitt betitelt „sort – sortieren“sort datei.txt # alphabetisch aufsteigendsort -r datei.txt # absteigendsort -n zahlen.txt # numerisch (nicht lexikografisch)sort -h größen.txt # menschenlesbare Größen (1K, 2M, ...)sort -u datei.txt # sortieren und Duplikate entfernensort -t: -k3 -n /etc/passwd # Feld 3, :-getrennt, numerisch sortierenls -1 /etc | sort -r | head -5 # letzte 5 Einträge alphabetischuniq – Duplikate entfernen
Abschnitt betitelt „uniq – Duplikate entfernen“uniq entfernt aufeinanderfolgende identische Zeilen. Fast immer in Kombination mit sort:
sort datei.txt | uniq # sortieren, dann Duplikate entfernensort datei.txt | uniq -c # mit Häufigkeit voranstellensort datei.txt | uniq -d # nur Duplikate anzeigensort datei.txt | uniq -u # nur Unikate anzeigen (kein Duplikat)Typischer Einsatzfall – häufigste Einträge in einem Log:
cat access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn | head -10# → Top-10 IP-Adressen nach Anzahl der Zugriffegrep – Zeilen filtern
Abschnitt betitelt „grep – Zeilen filtern“grep gibt nur die Zeilen aus, die ein bestimmtes Muster enthalten – und ist damit der klassische Zeilenfilter in Pipelines:
grep "ERROR" /var/log/syslog # Zeilen mit "ERROR" ausgebengrep -v "^#" /etc/ssh/sshd_config # Kommentarzeilen ausblendencat access.log | grep "404" | wc -l # Anzahl 404-Fehler zählengrep ist als Suchwerkeug so mächtig, dass es einen eigenen Artikel im Abschnitt Suchen bekommt.
Ausschneiden & Ersetzen
Abschnitt betitelt „Ausschneiden & Ersetzen“cut – Felder ausschneiden
Abschnitt betitelt „cut – Felder ausschneiden“cut extrahiert Spalten aus strukturiertem Text:
# -d Trennzeichen, -f Feldnummer(n)cut -d: -f1 /etc/passwd # Benutzernamen (Feld 1, getrennt durch :)cut -d: -f1,3 /etc/passwd # Benutzername und UIDcut -d, -f2-4 daten.csv # Felder 2 bis 4 einer CSV
# -c Zeichenpositionencut -c1-10 datei.txt # erste 10 Zeichen jeder Zeilecat /etc/passwd | cut -d: -f1 | sort# → alle Benutzernamen alphabetischtr – Zeichen übersetzen und löschen
Abschnitt betitelt „tr – Zeichen übersetzen und löschen“tr (Translate) ersetzt oder löscht einzelne Zeichen. Es liest nur von stdin:
echo "hallo welt" | tr 'a-z' 'A-Z' # → HALLO WELTecho "hallo welt" | tr ' ' '_' # → hallo_weltecho "hallo welt" | tr -s ' ' # mehrfache Leerzeichen zusammenführen (-s squeeze)echo "hallo123" | tr -d '0-9' # Ziffern löschen (-d delete) → hallocat datei.txt | tr -d '\r' # Windows-Zeilenenden entfernentr 'a-z' 'A-Z' # Kleinbuchstaben → Großbuchstabentr 'A-Z' 'a-z' # Großbuchstaben → Kleinbuchstabentr '0-9' 'a-j' # Ziffern → Buchstabentr ' ' '\n' # Leerzeichen → Zeilenumbruch (ein Wort pro Zeile)tr '\n' ' ' # Zeilenumbrüche → Leerzeichen (alles in eine Zeile)tr -d '\r' # Carriage Returns entfernen (Windows → Unix)