Посмотреть следующую строку, но не использовать ее #39;

getlineчитает в следующей строке и увеличивает счетчик NRна 1. После использование getline, awkвозобновляет работу со следующей строки. Это желаемое поведение в большинстве случаев.

В моей особой ситуации мне нужно только просмотреть следующую строку, и в зависимости от ее содержимого я читаю следующую строку или Мне нужно вернуться на одну строку.

Как я могу вернуться на одну строку в awk? Я пытался установить счетчик NRвручную на NR=NR-1, но это не работает. Или есть метод, который только смотрит на следующая строка без изменения NR?

Мне нужен просмотр вперед на одну строку. Просто сохранить строку в переменной и ссылаться на нее потом не получится в данном случае. Пытаюсь реализовать грамотный инструмент программирования в awk, где мастер-файл может содержать много подфайлов. Такой подфайл начинается со строки типа "% file:file1". Конец такого файла достигается, если достигнута строка с меньшим отступом или другая строка со строкой типа "% file:file2".

Набор правил для всех строк, соответствующих /% file:/, не используется, когда я уже прочитал эту строку с помощью getline. Вот почему я хотел бы сбросить NRна предыдущую строку,затем awkснова прочитает строку, соответствующую /% file:/, и соответствующее правило будет выполнено.

13
задан mskfisher 11 August 2015 в 13:45
поделиться