Input Summary (The GNU Awk User’s Guide)
From Get docs
Gawk/docs/latest/Input-Summary
Next: Input Exercises, Previous: Command-line directories, Up: Reading Files [Contents][Index]
4.14 Summary
- Input is split into records based on the value of
RS. The possibilities are as follows: Value of RSRecords are split on …awk / gawk Any single characterThat characterawk The empty string ("")Runs of two or more newlinesawk A regexpText that matches the regexpgawk FNRindicates how many records have been read from the current input file;NRindicates how many records have been read in total.gawksetsRTto the text matched byRS.- After splitting the input into records,
awkfurther splits the records into individual fields, named$1,$2, and so on.$0is the whole record, andNFindicates how many fields there are. The default way to split fields is between whitespace characters. - Fields may be referenced using a variable, as in
$NF. Fields may also be assigned values, which causes the value of$0to be recomputed when it is later referenced. Assigning to a field with a number greater thanNFcreates the field and rebuilds the record, usingOFSto separate the fields. IncrementingNFdoes the same thing. DecrementingNFthrows away fields and rebuilds the record. - Field splitting is more complicated than record splitting: Field separator valueFields are split …awk / gawk FS == " "On runs of whitespaceawk FS == any single characterOn that characterawk FS == regexpOn text matching the regexpawk FS == ""Such that each individual character is a separate fieldgawk FIELDWIDTHS == list of columnsBased on character positiongawk FPAT == regexpOn the text surrounding text matching the regexpgawk
- Using ‘
FS = "\n"’ causes the entire record to be a single field (assuming that newlines separate records). FSmay be set from the command line using the-Foption. This can also be done using command-line variable assignment.- Use
PROCINFO["FS"]to see how fields are being split. - Use
getlinein its various forms to read additional records from the default input stream, from a file, or from a pipe or coprocess. - Use
PROCINFO[file, "READ_TIMEOUT"]to cause reads to time out forfile. -
Directories on the command line are fatal for standard
awk;gawkignores them if not in POSIX mode.
Next: Input Exercises, Previous: Command-line directories, Up: Reading Files [Contents][Index]