$ cat > average {total = total + $3} END {print "Average value is", total/NR} ^D $ awk -f average tennis Average value is 8.9 $
Образец поиска в awk может содержать условные выражения. Пример, в котором в файле tennis пишутся все записи, значение третьего поля в которых не меньше 10:
$ awk '$3 >= 10 {print $0}'tennis Steve Daniel 11 Hank Parker 18 Jack Austen 14 $
Знак $0 (доллар-ноль) есть ссылка на всю запись (строку).
В общем случае выражение для условия подчиняется синтаксису, близкому к синтаксису выражений в языке C. Кроме того, в команде awk допустимо указывать отрезок образцов. Пример выборки всех записей, сделанных с 1976 до 1978 г.:
$ sort -n -o chard.s chard $ awk '/1976/, /1978/ {if($2 < 8.00 print $0}' chard.s 1976 7.50 Chateau 1977 7.75 Chateau 1978 5.99 Charles
Как видно из примера, в программах действий для awk можно использовать управляющие структуры с синтаксисом, близким к языку C.
Пример цикла для печати полей всех записей файла в обратном порядке:
$ awk {for (i = NF; i > 0; --i) print $i} f1,
где NF - число полей в записи.
Полное описание средств awk можно найти в статье авторов [6].