grep, sed und awk: Text im Terminal bearbeiten
Kurz: Drei Klassiker der Kommandozeile: grep sucht, sed ersetzt, awk rechnet mit Spalten. Zusammen mit Pipes (|) bearbeitet man Textdateien und Logs blitzschnell.
grep: suchen
grep "fehler" log.txt # Zeilen mit "fehler"
grep -i "fehler" log.txt # Groß-/Kleinschreibung egal
grep -rn "TODO" src/ # rekursiv, mit Zeilennummer
grep -v "debug" log.txt # Zeilen OHNE "debug"
grep -E "^(GET|POST) " log.txt # erweiterter regulärer AusdruckZu regulären Ausdrücken siehe RegEx (Reguläre Ausdrücke).
sed: ersetzen
sed 's/alt/neu/g' datei.txt # alles ersetzen, Ausgabe auf dem Bildschirm
sed -i 's/alt/neu/g' datei.txt # direkt in der Datei (-i)
sed -n '5,10p' datei.txt # nur die Zeilen 5 bis 10
sed '/^#/d' datei.txt # Kommentarzeilen löschenawk: Spalten
awk '{print $1}' log.txt # erste Spalte
awk -F: '{print $1, $3}' /etc/passwd # Trennzeichen ":"
awk '{s+=$2} END {print s}' zahlen.txt # Summe der zweiten SpalteZusammenspiel
grep "404" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | headZeigt die Adressen mit den meisten 404-Fehlern. Merke: Vor sed -i immer eine Sicherung anlegen oder erst ohne -i prüfen.
Siehe auch: Shell-Skripte schreiben