getline
Into a Variable
You can use `getline var' to read the next record from
awk
's input into the variable var. No other processing is
done.
For example, suppose the next line is a comment, or a special string,
and you want to read it, without triggering
any rules. This form of getline
allows you to read that line
and store it in a variable so that the main
read-a-line-and-check-each-rule loop of awk
never sees it.
The following example swaps every two lines of input. For example, given:
wan tew free phore
it outputs:
tew wan phore free
Here's the program:
awk '{ if ((getline tmp) > 0) { print tmp print $0 } else print $0 }'
The getline
command used in this way sets only the variables
NR
and FNR
(and of course, var). The record is not
split into fields, so the values of the fields (including $0
) and
the value of NF
do not change.
Go to the first, previous, next, last section, table of contents.