Sed a awk jsou nejmocnější nástroje pro zpracování textu na příkazové řádce. Sed exceluje v substituci, awk v extrakci a analýze strukturovaných dat.
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
Praktické příklady¶
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
Kdy co¶
- Sed — substituce, mazání řádků, in-place editace
- Awk — sloupce, výpočty, agregace
- Kombinace — sed předzpracování, awk analýza
Nepostradatelné¶
Investice do sed a awk se mnohonásobně vrátí při práci s logy a daty.