In the typical awk
program,
awk
reads all input either from the
standard input (by default, this is the keyboard, but often it is a pipe from another
command) or from files whose names you specify on the awk
command line. If you specify input files, awk
reads them
in order, processing all the data from one before going on to the next.
The name of the current input file can be found in the predefined variable
FILENAME
(see section Predefined Variables).
The input is read in units called records, and is processed by the rules of your program one record at a time. By default, each record is one line. Each record is automatically split into chunks called fields. This makes it more convenient for programs to work on the parts of a record.
On rare occasions, you may need to use the getline
command.
The getline
command is valuable both because it
can do explicit input from any number of files, and because the files
used with it do not have to be named on the awk
command line
(see section Explicit Input with getline
).
• Records | Controlling how data is split into records. | |
• Fields | An introduction to fields. | |
• Nonconstant Fields | Nonconstant Field Numbers. | |
• Changing Fields | Changing the Contents of a Field. | |
• Field Separators | The field separator and how to change it. | |
• Constant Size | Reading constant width data. | |
• Splitting By Content | Defining Fields By Content | |
• Testing field creation | Checking how gawk is splitting
records.
| |
• Multiple Line | Reading multiline records. | |
• Getline | Reading files under explicit program control
using the getline function.
| |
• Read Timeout | Reading input with a timeout. | |
• Retrying Input | Retrying input after certain errors. | |
• Command-line directories | What happens if you put a directory on the command line. | |
• Input Summary | Input summary. | |
• Input Exercises | Exercises. |