getline
reads in the next line and increments the NR
counter by 1. After using getline
, awk
resumes work with the next line. This is the desired behavior in most cases.
In my special situation I need only to peek the next line and depending on its content I read the next line or I need to backtrack one line.
How can I backtrack one line in awk
? I tried setting the NR
counter manually to NR=NR-1
but this doesn't work. Or is there a method that only looks at the next line without changing NR
?
I need a lookahead of one line. Simply saving the line in a variable and referring to it later does not work in this case. I am trying to implement a literate programming tool in awk
, where a master file might contain many subfiles. Such a subfile begins with a line like "% file:file1"
. The end of such a file is reached, if a line with a lower indentation or another line with a line like "% file:file2"
is reached.
The rule set for all lines matching /% file:/
is not used, when I have already read this line with getline. That's why I would like to reset NR
to the previous line, then awk
would read the line matching /% file:/
again and the appropriate rule would be executed.