As each input line is read, gawk
splits the line into
fields, using the value of the FS
variable as the field
separator. If FS
is a single character, fields are separated by
that character. Otherwise, FS
is expected to be a full regular
expression. In the special case that FS
is a single space,
fields are separated by runs of spaces, tabs and/or newlines.(28)
If FS
is the null string (""
), then each individual
character in the record becomes a separate field.
Note that the value
of IGNORECASE
(see section Case-sensitivity in Matching)
also affects how fields are split when FS
is a regular expression.
Each field in the input line may be referenced by its position, $1
,
$2
, and so on. $0
is the whole line. The value of a field may
be assigned to as well. Field numbers need not be constants:
n = 5 print $n
prints the fifth field in the input line. The variable NF
is set to
the total number of fields in the input line.
References to non-existent fields (i.e. fields after $NF
) return
the null string. However, assigning to a non-existent field (e.g.,
$(NF+2) = 5
) increases the value of NF
, creates any
intervening fields with the null string as their value, and causes the
value of $0
to be recomputed, with the fields being separated by
the value of OFS
.
Decrementing NF
causes the values of fields past the new value to
be lost, and the value of $0
to be recomputed, with the fields being
separated by the value of OFS
.
See section Reading Input Files.
Go to the first, previous, next, last section, table of contents.