Это чертовски неприятный факт, если предположить, что некая программа, при достаточных правах может наделать неопределённое количество таких ссылок на любые файлы. И попробуй потом найди, куда зловред запрятал эти ссылки.
Fields
As each input record is read, gawk splits the record 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. If FS is the null string, then each individual character
becomes a separate field. 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 and/or tabs and/or newlines. (But see the section POSIX COMPATIBILITY, below).
NOTE: The value of IGNORECASE (see below) also affects how fields are split when FS is a regular expression, and how records are separated when RS is a regular expression.
If the FIELDWIDTHS variable is set to a space separated list of numbers, each field is expected to have fixed width, and gawk splits up the record using the specified widths. The value of FS is ignored. Assigning a new value to FS or FPAT overrides the
use of FIELDWIDTHS.
Similarly, if the FPAT variable is set to a string representing a regular expression, each field is made up of text that matches that regular expression. In this case, the regular expression describes the fields themselves, instead of the text that sepa‐
rates the fields. Assigning a new value to FS or FIELDWIDTHS overrides the use of FPAT.
Each field in the input record may be referenced by its position: $1, $2, and so on. $0 is the whole record. Fields need not be referenced by constants:
n = 5
print $n
prints the fifth field in the input record.
The variable NF is set to the total number of fields in the input record.
References to non-existent fields (i.e., fields after $NF) produce 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 values, and causes
the value of $0 to be recomputed, with the fields being separated by the value of OFS. References to negative numbered fields cause a fatal error. Decrementing NF causes the values of fields past the new value to be lost, and the value of $0 to be recom‐
puted, with the fields being separated by the value of OFS.
Assigning a value to an existing field causes the whole record to be rebuilt when $0 is referenced. Similarly, assigning a value to $0 causes the record to be resplit, creating new values for the fields.