Go to the first, previous, next, last section, table of contents.


Summary of getline Variants

With all the forms of getline, even though $0 and NF, may be updated, the record will not be tested against all the patterns in the awk program, in the way that would happen if the record were read normally by the main processing loop of awk. However the new record is tested against any subsequent rules.

Many awk implementations limit the number of pipelines an awk program may have open to just one! In gawk, there is no such limit. You can open as many pipelines as the underlying operating system will permit.

An interesting side-effect occurs if you use getline (without a redirection) inside a BEGIN rule. Since an unredirected getline reads from the command line data files, the first getline command causes awk to set the value of FILENAME. Normally, FILENAME does not have a value inside BEGIN rules, since you have not yet started to process the command line data files (d.c.). (See section The BEGIN and END Special Patterns, also see section Built-in Variables that Convey Information.)

The following table summarizes the six variants of getline, listing which built-in variables are set by each one.

getline
sets $0, NF, FNR, and NR.
getline var
sets var, FNR, and NR.
getline < file
sets $0, and NF.
getline var < file
sets var.
command | getline
sets $0, and NF.
command | getline var
sets var.


Go to the first, previous, next, last section, table of contents.