Руководство пользователя для GNU Awk
5. Чтение входных файлов
5.8 Явный ввод по команде getline
5.8.8 Сводка вариантов getline
Для всех форм getline, даже если $0 и NF обновляются, запись не проверяется по отношению к всем образцам в awk-программе, так, как это было бы в случае чтения записи нормально, в главном цикле обработки awk. Однако, новая запись проверяется по каждому последующему правилу.
Многие реализации awk ограничивают количество конвейеров, которые может открыть awk-программа, только одним! В gawk такого ограничения нет. Можн открыть столько конвейеров, сколько позволяет операционная система.
Интересный побочный эффект может случиться, если вы используете getline (без перенаправлений) внутри правила BEGIN. Поскольку не перенаправленная getline читает из файлов данных командной строки, первая команда getline заставляет awk установить значение в FILENAME. Нормально FILENAME не имеет значения внутри правил BEGIN, поскольку еще не началась обработка файлов с данными, указанных в командной строке (d.c.). (См. раздел 8.1.5 [Специальные образцы BEGIN и END], стр. 100, и раздел 10.2 [Встроенные переменные, которые передают информацию], стр. 117.)
Следующая таблица подводит итог шести вариантам getline и перечисляет встроенные переменные, которые устанавливаются в каждом из вариантов.
getline устанавливает $0, NF, FNR and NR.
getline var устанавливает var, FNR and NR.
getline ! file устанавливает $0 and NF.
getline var ! file устанавливает var.
command -- getline устанавивает $0 и and NF.
command -- getline var устанавливает var.
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|