Как только очередная входная строка прочтена, gawk разделяет ее на поля, используя значение в переменной FS как разделитель полей. Если FS есть один символ, поля разделяются этим символом. В противном случае ожидается, что FS есть полное регулярное выражение. В специальном случае, когда FS есть один пробел, поля разделяются группами пробелов, символов tab и/или символами newlin.*2* Если FS есть пустая строка (""), то каждый отдельный символ в записи считается отдельным полем. Заметим, что значение IGNORECASE (см. раздел 4.5 [Чувствительность к регистру при соответствии], стр. 33) также влияет на то, как разделяются поля, если FS есть регулярное выражение.
На каждое поле введенной строки можно ссылаться по ее позиции, $1, $2, и т.д. $0 означает всю строку. Значение поля можно также присваивать переменным. Номера полей не обязательно константы:
n = 5 print $n
печатает пятое поле прочтенной строки. Переменная NF имеет значение количества полей в введенной строке. Ссылка на несуществующие поля (т.е. поля после $NF) дает пустое значение. Однако, присваивание несуществующему полю (например, $(NF+2) = 5) увеличивает значение NF, создает дополнительные поля с пустым значением и пере вычисляет значение $0 с полями, разделенными значением OFS. Уменьшение NF приводит к потере полей с номерами, большими чем новое значение и пере вычислению $0 с полями, разделенными значением OFS. См. главу 5 [Чтение входных файлов], стр. 37.