Getline (The GNU Awk User’s Guide)
Next: Read Timeout, Previous: Multiple Line, Up: Reading Files [Contents][Index]
4.10 Explicit Input with getline
So far we have been getting our input data from awk
’s main input stream—either the standard input (usually your keyboard, sometimes the output from another program) or the files specified on the command line. The awk
language has a special built-in command called getline
that can be used to read input under your explicit control.
The getline
command is used in several different ways and should not be used by beginners. The examples that follow the explanation of the getline
command include material that has not been covered yet. Therefore, come back and study the getline
command after you have reviewed the rest of this Web page and have a good knowledge of how awk
works.
The getline
command returns 1 if it finds a record and 0 if it encounters the end of the file. If there is some error in getting a record, such as a file that cannot be opened, then getline
returns -1. In this case, gawk
sets the variable ERRNO
to a string describing the error that occurred.
If ERRNO
indicates that the I/O operation may be retried, and PROCINFO["input", "RETRY"]
is set, then getline
returns -2 instead of -1, and further calls to getline
may be attempted. See section Retrying Reads After Certain Input Errors for further information about this feature.
In the following examples, command
stands for a string value that represents a shell command.
NOTE: When
--sandbox
is specified (see section Command-Line Options), reading lines from files, pipes, and coprocesses is disabled.
• Plain Getline | Using getline with no arguments.
| |
• Getline/Variable | Using getline into a variable.
| |
• Getline/File | Using getline from a file.
| |
• Getline/Variable/File | Using getline into a variable from a file.
| |
• Getline/Pipe | Using getline from a pipe.
| |
• Getline/Variable/Pipe | Using getline into a variable from a pipe.
| |
• Getline/Coprocess | Using getline from a coprocess.
| |
• Getline/Variable/Coprocess | Using getline into a variable from a coprocess.
| |
• Getline Notes | Important things to know about getline .
| |
• Getline Summary | Summary of getline Variants.
|
Next: Read Timeout, Previous: Multiple Line, Up: Reading Files [Contents][Index]