Язык программирования AWK

Александр Бельченко
15 июня 2004

Awk

Awk — это интерпретируемый язык для построчной обработки текстовых файлов. Он издавна входит в комплект системных утилит Unix. Awk — это компактный С-подобный язык, который был создан для обработки форматированного текста. Дампы баз данных и системные логи являются обычным примером. Awk весь построен на работе с регулярными выражениями и образцами, так же, как и Perl. Сказать правду, Perl — это «правнук» awk.

Забавное имя awk (англ. awkward — неуклюжий) происходит от имен авторов языка: Алфреда Ахо (Alfred V. Aho), Брайана Кернигана (Brian W. Kernighan) и Питера Вейнбергера (Peter J. Weinberger). Первая версия языка была создана в 1977 году, позже (в 1985) была создана новая версия awk, актуальная и поныне.

В документации на gawk — GNU Awk — приводится следующий шутливый рецепт, по которому был создан Awk:

1 часть egrep; 1 часть snobol; 2 части ed; 3 части C.
Хорошо смешать все части при помощи lex и yacc. Добавить минимум документации и выпустить релиз.
Через восемь лет добавить еще часть egrep и две дополнительные части C. Снабдить хорошей документацией и выпустить релиз.

Поиск в Google выдает множество ссылок на документацию по awk. Руководство по gawk находится на официальном сайте утилиты. На русском языке довольно трудно найти хорошую документацию, поэтому я бы рекомендовал консультироваться с английским первоисточником.

Gawk: Effective AWK Programming — официальное руководство на сайте разработчиков gnu.org.
Краткое пособие по gawk на русском языке.