Вызов 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" добавлено здесь просто
из эстетических соображений).