Field Splitting Summary (The GNU Awk User’s Guide)
Previous: Full Line Fields, Up: Field Separators [Contents][Index]
4.5.6 Field-Splitting Summary
It is important to remember that when you assign a string constant as the value of FS
, it undergoes normal awk
string processing. For example, with Unix awk
and gawk
, the assignment ‘FS = "\.."
’ assigns the character string ".."
to FS
(the backslash is stripped). This creates a regexp meaning “fields are separated by occurrences of any two characters.” If instead you want fields to be separated by a literal period followed by any single character, use ‘FS = "\\.."
’.
The following list summarizes how fields are split, based on the value of FS
(‘==
’ means “is equal to”):
FS == " "
- Fields are separated by runs of whitespace. Leading and trailing whitespace are ignored. This is the default.
FS == any other single character
- Fields are separated by each occurrence of the character. Multiple successive occurrences delimit empty fields, as do leading and trailing occurrences. The character can even be a regexp metacharacter; it does not need to be escaped.
FS == regexp
- Fields are separated by occurrences of characters that match
regexp
. Leading and trailing matches ofregexp
delimit empty fields. FS == ""
- Each individual character in the record becomes a separate field. (This is a common extension; it is not specified by the POSIX standard.)
The FS = "c" IGNORECASE = 1 $0 = "aCa" print $1 The output is ‘ |
Previous: Full Line Fields, Up: Field Separators [Contents][Index]