Gawk/Getline 002fFile
Next: Getline/Variable/File, Previous: Getline/Variable, Up: Getline [Contents][Index]
4.10.3 Using getline
from a File
Use ‘getline < file
’ to read the next record from file
.
Here, file
is a string-valued expression that
specifies the file name. ‘< file
’ is called a redirection
because it directs input to come from a different place.
For example, the following
program reads its input record from the file secondary.input
when it
encounters a first field with a value equal to 10 in the current input
file:
{ if ($1 == 10) { getline < "secondary.input" print } else print }
Because the main input stream is not used, the values of NR
and
FNR
are not changed. However, the record it reads is split into fields in
the normal manner, so the values of $0
and the other fields are
changed, resulting in a new value of NF
.
RT
is also set.
According to POSIX, ‘getline < expression
’ is ambiguous if
expression
contains unparenthesized operators other than
‘$
’; for example, ‘getline < dir "/" file
’ is ambiguous
because the concatenation operator (not discussed yet; see section String Concatenation)
is not parenthesized. You should write it as ‘getline < (dir "/" file)
’ if
you want your program to be portable to all awk
implementations.