Sed und awk sind die leistungsfaehigsten Werkzeuge fuer Textverarbeitung auf der Kommandozeile. Sed brilliert bei Substitutionen, awk bei der Extraktion und Analyse strukturierter Daten.
Sed — Stream-Editor¶
sed ‘s/foo/bar/g’ soubor.txt sed -i ‘s/foo/bar/g’ soubor.txt sed ‘/^#/d’ config.conf sed ‘/^$/d’ soubor.txt sed -n ‘/BEGIN/,/END/p’ soubor.txt
Awk — Pattern Scanning¶
awk ‘{print $1, $3}’ soubor.txt awk ‘$3 > 100 {print $1, $3}’ data.txt awk -F’:’ ‘{print $1, $7}’ /etc/passwd awk ‘{sum += $2} END {print sum}’ data.txt awk ‘{count[$1]++} END {for (k in count) print k, count[k]}’ access.log
Praktische Beispiele¶
awk ‘{print $1}’ access.log | sort | uniq -c | sort -rn | head awk ‘{print $9}’ access.log | sort | uniq -c | sort -rn awk -F’,’ ‘$3 > 1000 {print $0}’ sales.csv awk -F’:’ ‘$3 >= 1000 {print $1}’ /etc/passwd
Wann was¶
- Sed — Substitution, Zeilen loeschen, In-place-Bearbeitung
- Awk — Spalten, Berechnungen, Aggregation
- Kombination — sed Vorverarbeitung, awk Analyse
Unverzichtbar¶
Die Investition in sed und awk zahlt sich bei der Arbeit mit Logs und Daten vielfach aus.