Библиотека сайта rus-linux.net
Руководство по Bash для начинающих | ||
---|---|---|
Назад | Глава 6: Язык программирования GNU awk | Вперед |
Начинаем работу с gawk
Что такое gawk?
Gawk является GNU версией общедоступной программы UNIX awk, еще одного популярного потокового редактора. Поскольку программа awk часто является просто ссылкой на gawk, мы будем далее говорить об awk.
Основной функцией awk является поиск в файле строк или других текстовых единиц, которые соответствуют одному или нескольким шаблонам. Когда в строке будет найдено соответствие одному из шаблонов, то над этой строкой будут выполнены специальные действия.
Программы на awk отличаются от программ, написанных на большинстве других языков, т.к. программы awk являются программами, "управляемыми данными" ("data-driven"): вы описываете данные, с которыми вы хотите работать, и то, что надо делать, когда вы их найдете. Большинство других языков являются "процедурными". Вы должны очень подробно описать каждый шаг, который делается в программе. При работе с процедурными языками, обычно гораздо труднее четко описать, как ваша программа будет обрабатывать данные. По этой причине, программы awk часто гораздо проще читать и писать.
Что означает awk? | |
Еще в 1970-х годах вместе собрались три программиста, которые создали этот язык. Их имена были Aho, Kernighan и Weinberger (Ахо, Керниган и Уайнбергер). Они взяли первые символы своих имен и соединили их вместе. Так что название языка точно также могло бы быть "wak". |
Команды Gawk
Когда вы запускаете awk, вы указываете программу awk, которая сообщает awk, что делать. Программа состоит из последовательности правил. (В ней также могут быть определения функций, циклы, условия и другие программные конструкции, дополнительные возможности, которые в настоящее время мы рассматривать не будем). В каждом правиле указывается один шаблон поиска и одно действие, выполняемое, если шаблон будет найден.
Есть несколько способов запуска awk. Если программа короткая, то проще запустить ее из командной строки
awk PROGRAM inputfile(s)
Если изменений будет делаться много, возможно, регулярно и для многих файлов, то проще поместить команды awk в скрипт. Обращение к скрипту следующее:
awk -f PROGRAM-FILE inputfile(s)
Предыдущий раздел: | Оглавление | Следующий раздел: |
Подводим итог главы 5 | Программа print |