getline
читает в следующей строке и увеличивает счетчик NR
на 1. После использование getline
, awk
возобновляет работу со следующей строки. Это желаемое поведение в большинстве случаев.
В моей особой ситуации мне нужно только просмотреть следующую строку, и в зависимости от ее содержимого я читаю следующую строку или Мне нужно вернуться на одну строку.
Как я могу вернуться на одну строку в awk
? Я пытался установить счетчик NR
вручную на NR=NR-1
, но это не работает. Или есть метод, который только смотрит на следующая строка без изменения NR
?
Мне нужен просмотр вперед на одну строку. Просто сохранить строку в переменной и ссылаться на нее потом не получится в данном случае. Пытаюсь реализовать грамотный инструмент программирования в awk
, где мастер-файл может содержать много подфайлов. Такой подфайл начинается со строки типа "% file:file1"
. Конец такого файла достигается, если достигнута строка с меньшим отступом или другая строка со строкой типа "% file:file2"
.
Набор правил для всех строк, соответствующих /% file:/
, не используется, когда я уже прочитал эту строку с помощью getline. Вот почему я хотел бы сбросить NR
на предыдущую строку,затем awk
снова прочитает строку, соответствующую /% file:/
, и соответствующее правило будет выполнено.