AWK najčastejšie vidieť v jednoriadkových skriptoch ako filter stĺpcov. V skutočnosti ide o skriptovací jazyk, ktorý sa hodí na zložitejšie spracovanie textu v stĺpcoch. Ponúka definíciu vlastných premenných, polí, funkcií a regulárne výrazy.
Sériovo spracúva podmienky štýlom:
podmienka1 { prikaz1 }
podmienka2 { prikaz2 }
Bloky so slovami BEGIN a END miesto podmienky sú vykonané len raz, pred a po spracovaní vstupu.
Špeciálne premenné:
NR - počet záznamov (riadkov), NF - počet polí (stĺpcov) vrámci záznamu
RS - oddeľovač záznamov, FS - oddeľovač polí
$0 - celý riadok (v print netreba uvádzať ak je to jediný argument), $1 - prvý stĺpec, $2 - druhý stĺpec..
Príklad analyzuje dvojbodkami oddelené záznamy v súbore /etc/passwd z hľadiska bezpečnosti:
awk -F: 'BEGIN { print "=== analyza /etc/passwd" }
$3 == "0" { print "rootom je: "$1 };
$3 == "0" { print "root grupa je: "$1 };
list[$3]++{print "duplicitne id pouzite pre "$1}
/sh$/ { print "shell ma: "$1 }
END { print NR" riadkov" } ' /etc/passwd
Suma v druhom stĺpci zoskupená podľa prvého (asociatívne pole), výpis všetkých hodnôt na koniec:
awk -F\ ' list[$1]+=$2 {} END { for ( i in list ) print i" "list[i] } ' auta.txt
Výpis 3 riadkov po nájdenom reťazci
awk ' /^<Directory/ { for ( i=1; i<=3; i++) { print;getline } } ' /etc/apache2/apache2.conf
Výpis riadkov medzi dvoma nájdenými reťazcami:
awk ' /^<Directory/,/\/Directory/ { print } ' /etc/apache2/apache2.conf