Операционные системы - статьи

         

Вызов awk


Возможны два основных варианта:

1) awk [-Fc] 'prog.awk' [files]

Это простейший случай, когда программа (заключенная

в кавычки " ' ") находится в теле команды, "-Fc"

- флаг, меняющий стандартный разделитель полей на "c"

"file" - имя файла исходных данных, при его отсутствии

- со стандартного входа. (Этот формат использован в начальных

примерах).

cat f-awk | awk '/до/ {print}'

и

awk '/до/ {print}' < f-awk

дают результат, аналогичный

awk '/до/ {print}' f-awk

Для демонстрации действия флага "-Fc" рассмотрим

вызовы:

awk '/до/ {print($2)}' f-awk



awk -F0 '/до/ {print($2)}' f-awk

На экран будет выведено:

С.К.

И.Х.

6

Первая команда "awk" выведет вторые поля

(благодаря позиционной переменной "$2") строк, содержащие

"до". (Кстати, позиционная переменная "$0"

соответсвует всей строке). Во втором случае, благодаря флагу "-F"

стандартные разделители заменены на символ "0", т.е.

теперь выбранные строки воспринимаются, как разбитые на следующие

поля:

Сидоров С.К. 1979 40

---------------------^--------------------

1-е поле 2-е поле (пусто)

Хведоров И.Х. 1970 60

-----------------^---^--------------------

1-е поле 2-е 3-е поле (пусто)

2) awk [-Fc] -f prog.awk [files]

Флаг "-f" говорит о том, что awk-программу

надо брать из файла, имя которого указано следом (имя может быть

произвольным и расширение ".awk" добавлено здесь просто

из эстетических соображений).



Содержание раздела