Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

10.3. Простые шаблоны

Вы можете выбрать определенные записи для печати или другой обработки с использованием простых шаблонов. awk имеет три вида шаблонов. Первое - это шаблоны, называемые выражениями отношений, которые проводят сравнения. Например, оператор "==" тестирует на равенство. Чтобы напечатать строки, для которых 4-е поле равно строке "Asia", можно использовать программу, состоящую из одного шаблона:

	$4 == "Asia"

Если в качестве вводного файла взять countries, то получим:

        USSR    8650    262     Asia
        China   3692    866     Asia
        India   1269    637     Asia

Для сравнения используются: >, >=, <, <=, ==, != (не равно). Сравниваться могут числа и строки. Например, из нашего файла мы хотим распечатать только страны, население которых более 100 млн. Для этого введем:

	$3 > 100

Получим печать всех строк, в которых третье поле более 100.

В качестве шаблонов могут использоваться регулярные отношения, которые позволяют осуществлять поиск указанных символов для выбора записей. Простейшей формой регулярного отношения является строка символов, обрамленная наклонными чертами:

	/US/

Эта программа печатает каждую строку, которая содержит буквы US. Если в качестве вводного файла взять countries, то получим:

        USSR    8650    262     Asia
        USA     3615    219     North America

Третье - специальные шаблоны BEGIN и END могут использоваться для получения управления пред считыванием первой входной строки и после считывания последней. BEGIN должен быть первым шаблоном, а END - последним. Эта программа использует BEGIN для печати заголовка:

        BEGIN   {print "Countries of Asia:"}
        /Asia/  {print "          ", $1}

На выходе получим:

	Countries of Asia:
                USSR
                China
                India