Основной функцией awk является поиск в файлах строк (или других единиц текста), имеющих определенную форму. Если строка соответствует одной из форм, awk предпринимает указанные действия над этой строкой. awk продолжает такую обработку входных строк, пока не достигнет конца входных файлов.
Программы awk отличаются от программ на других языках тем, что они управляются данными; то есть, вы описываете данные, подлежащие обработке, и что с ними нужно делать, когда они будут найдены. Большинство других языков являются процедурными; вы должны описать в деталях каждый шаг программы. При работе с процедурными языками обычно труднее всего ясно описать данные, которые ваша программа должна обработать. По этой причине часто awk-программы гораздо легче и писать и понимать.
Когда вы используете awk, вы пишите awk-программу, которая сообщает интерпретатору awk, что нужно делать. Программа состоит из последовательности правил. (Она может содержать также определения функций, продвинутое свойство, которое мы пока будем игнорировать. См. Гл. 13 [Функции, определяемые пользователем], стр. 153.) Каждое правило указывает одну форму для поиска и одно действие над найденной частью данных. Синтаксически, одно правило состоит из образца и следующего за ним действия. Действие заключено в фигурные скобки для отделения его от образца. Правила обычно разделяются переходами к новой строке. Поэтому awk-программа выглядит подобно следующему: