Операционная система UNIX. Руководство программиста




Управляющие конструкции - часть 2


{ x [NR] = $0 } END { for (i in x) print i, x [i] }

Более содержательным является следующий пример - индексы-цепочки используются для вычисления суммарного населения стран по континентам:

BEGIN { FS="\t" } { population [$4] += $3 } END { for (i in population) print i, population [i] }

В данной программе тело цикла for выполняется для i, равного по очереди различным названиям континентов, до тех пор, пока все возможные значения i не будут исчерпаны (то есть пока все цепочки-названия не будут использованы). Отметим, однако, что порядок вычислений не определен. Например, такая программа может напечатать:

Africa 37 South America 142 Asia 1765 North America 243 Australia 14

Отметим, что условие в операторах if, while и for может включать:

  • Операции сравнения <, <=, >, >=, ==, !=.
  • Регулярные выражения, используемые вместе с операциями сопоставления ~ и !~.
  • Логические операции , && и !.
  • Скобки для группировки.

Оператор break (если он встречается внутри циклов while или for) приводит к немедленному выходу из цикла.

Оператор continue (если он встречается внутри циклов while или for) приводит к началу следующей итерации цикла.

Встретившийся в awk-программе оператор next заставляет awk немедленно перейти к следующей записи и возобновить просмотр шаблонов с начала программы. (Отметим различие между getline и next: getline не ведет к переходу к началу awk-программы.)

Если оператор exit встречается в секции BEGIN awk-программы, программа прекращает свое выполнение и выполняется секция END

(если она есть).

Если оператор exit встречается в основной секции awk-программы, прекращается выполнение основной секции. Последующие записи не читаются, выполняется секция END.

Оператор exit в секции END приводит к завершению выполнения программы.




Содержание  Назад  Вперед