grep ·
find ·
awk ·
sed
Diese Befehle sind unverzichtbar für die Arbeit mit Log-Dateien, Textverarbeitung, Skripting und Datenanalyse. Sie gehören zum Standard-Werkzeugkasten jedes Linux-Administrators und Entwicklers.
grep (Global Regular Expression Print) durchsucht Textdateien nach einem Muster (Suchbegriff oder regulärer Ausdruck) und gibt die gefundenen Zeilen aus.
| Option | Beschreibung |
|---|---|
| -i | Groß-/Kleinschreibung ignorieren |
| -r / -R | Rekursiv in Unterverzeichnissen suchen |
| -n | Zeigt die Zeilennummer der Treffer an |
| -v | Kehrt um: Nur Zeilen ohne das Muster ausgeben |
| -c | Nur die Anzahl der Treffer anzeigen |
| -l | Nur Dateinamen mit Treffern anzeigen |
| -E | Erweiterte reguläre Ausdrücke (ERE) aktivieren |
| -A 3 | Zeige 3 Zeilen nach dem Treffer (After) |
| -B 3 | Zeige 3 Zeilen vor dem Treffer (Before) |
| -C 3 | Zeige 3 Zeilen Kontext (After + Before) |
grep -rn "TODO" .:grep -E aktivieren Sie erweiterte reguläre Ausdrücke – ideal für komplexe Suchmuster. Für noch mehr Power kombinieren Sie grep mit wc -l zum Zählen von Zeilen.
find durchsucht Verzeichnisbäume nach Dateien/Ordnern, die bestimmten Kriterien entsprechen – wie Name, Größe, Änderungsdatum, Berechtigungen.
| Option | Beschreibung |
|---|---|
| -name "Muster" | Suche nach Dateinamen (Muster) |
| -iname "Muster" | Wie -name, aber Groß-/Kleinschreibung ignorierend |
| -type f / d | Nur Dateien (f) oder Verzeichnisse (d) |
| -size +100M | Dateien größer als 100 MB |
| -mtime -7 | In den letzten 7 Tagen geändert |
| -mtime +30 | Vor mehr als 30 Tagen geändert |
| -user name | Dateien eines bestimmten Benutzers |
| -perm 755 | Dateien mit bestimmten Rechten |
| -exec Befehl {} \; | Führe Befehl für jede gefundene Datei aus |
| -delete | Löscht die gefundenen Dateien (⚠️ vorsichtig!) |
find kann sehr mächtig sein. Kombinieren Sie mehrere Bedingungen mit -a (UND) oder -o (ODER). Für große Verzeichnisse verwenden Sie find ... -exec ... um Platz zu sparen.
awk ist eine vollwertige Skriptsprache zur Verarbeitung von strukturierten Textdaten (Spalten/CSV). Es liest zeilenweise, teilt jede Zeile in Felder und führt Aktionen aus.
| Konstrukt | Beschreibung |
|---|---|
| $0 | Die gesamte Zeile |
| $1, $2, ... | Das erste, zweite ... Feld (getrennt durch Leerzeichen) |
| NF | Anzahl der Felder in der aktuellen Zeile |
| NR | Aktuelle Zeilennummer |
| FS | Feldtrenner (default: Leerzeichen) |
| BEGIN { ... } | Code vor der Verarbeitung |
| END { ... } | Code nach der Verarbeitung |
| /Muster/ | Nur Zeilen verarbeiten, die das Muster enthalten |
| -F "," | Feldtrenner auf "," setzen (CSV) |
awk ist extrem vielseitig – von einfachen Ausgaben bis zu komplexen Skripten mit Bedingungen, Schleifen und Funktionen. Ideal für die Datenaufbereitung aus Log-Dateien oder CSV.
sed (Stream Editor) ist ein zeilenbasierter Texteditor für die Kommandozeile. Er wird hauptsächlich zum Ersetzen, Löschen und Extrahieren von Text in Streams und Dateien verwendet.
| Konstrukt | Beschreibung |
|---|---|
| s/alt/neu/ | Ersetzt das erste Vorkommen pro Zeile |
| s/alt/neu/g | Ersetzt alle Vorkommen pro Zeile (global) |
| d | Löscht die Zeile |
| p | Gibt die Zeile aus (mit -n) |
| -i | Änderungen direkt in der Datei speichern |
| -i.bak | Backup der Originaldatei anlegen |
| /Muster/d | Löscht Zeilen, die das Muster enthalten |
| 2,5d | Löscht die Zeilen 2 bis 5 |
sed -i ändert die Datei direkt – ohne Rückfrage! Verwenden Sie -i.bak für ein Backup oder testen Sie zuerst ohne -i.
grep
find
awk
sed