В gawk к элементу массива обращаются, как и в обычных языках программирования — с помощью индекса, заключенного в скобки и помещенного после имени массива. Массив, подобно переменным, определяется после первого использования индекса. Однако в среде gawk, в отличие от некоторых языков программирования, объявлять массив и задавать его границы не требуется. В gawk массивы являются динамическими и их размерность увеличивается по мере добавления новых элементов.
В следующем примере объявляется массив titles, каждому элементу которого присваивается значение первого поля в строке. Этот массив может содержать произвольное количество элементов (в данном случае оно равно количеству строк). В качестве индекса массива используется переменная num, значение которой увеличивается на единицу после каждого обращения к элементу массива. По окончании вычисления на печать выводится последний элемент массива.
Предположим, нам требуется присвоить значение каждому полю отдельной записи массива. Это можно реализовать с помощью обычных операторов присваивания, задавая нужное значение для каждого поля. Существует и более короткий путь решения задачи — использование функции split, которая разделяет строку символов на сегменты и помещает полученные сегменты в массив. Аргументами функции split являются входная строка символов, результирующий массив и символ-разделитель. Символ-разделитель представляет собой строку. Например, при использовании в качестве разделителя двоеточия будет задействована строка «>. Если символ-разделитель не указан, в качестве разделителя по умолчанию применяется символ пробела или табуляции.
Функцию split можно использовать и для обработки строковых значений. Например, функция split ("9-10-92" ,date,"-") присваивает значение 9 элементу массива date[l], значение 10 — элементу date[2], а значение 92 — элементу date[3]. В следующем примере значение каждого поля строки присваивается элементу массива myrec. Выбор присваиваемой строки осуществляется с помощью шаблона /Dickens/. Вывод полей производится в обратном порядке.
В gawk можно также определять ассоциативные массивы. В массивах такого типа в качестве индекса используются строковые значения. Предположим, вам требуется найти информацию об издательстве, опубликовавшем произведение некоего автора. В следующем примере названия издательств присваиваются элементам массива, в котором в качестве индекса используются имена авторов. Второе поле представляет собой имя автора, а четвертое — название издательства. В данном примере на печать выводится название издательства Dickens. Обратите внимание на двойные кавычки вокруг строки «Dickens». При использовании строковой константы в качестве индекса массива строку требуется заключать в двойные кавычки.