В предыдущих примерах в качестве индексов массива используются числовые переменные. Однако применять их в качестве индексов ассоциативного массива нельзя. Ссылки на элементы ассоциативного массива задаются с помощью строковых переменных. Для обработки элементов ассоциативного массива язык gawk имеет специальную циклическую управляющую конструкцию. Она также начинается с ключевого слова for; однако во всем остальном ее синтаксис отличается от синтаксиса обычного цикла for. В цикле for-in за ключевым словом for следует переменная, потом — ключевое слово in и имя массива. В ходе выполнения цикла переменной присваивается строковое значение, являющееся индексом массива. Использование в качестве индекса массива каких-либо переменных других типов здесь не допускается. Поэтому цикл for-in, предназначенный для обработки ассоциативных массивов, имеет ограниченное применение. Синтаксис этого цикла приведен ниже:
for(переменная in имя-массива) {
действие }
В сценарии bkcount.gawk на печать последовательно выводятся обработанные элементы массива bookcnt. При обработке записей в качестве индекса массива bookcnt выступает четвертое поле записи, представляющее собой название издательства. На каждой итерации цикла for строковой переменной pubname последовательно присваиваются значения, являющиеся индексами массива bookcnt. На печать выводится не только элемент массива, но и текущий индекс.