awk будет обрабатывать каждый файл по очереди построчно. Awk будет отслеживать текущий номер строки в текущем файле (переменная FNR
), а также общее количество просмотренных строк (переменная NR
). Условие FNR==NR
может быть истинным, только когда awk читает первый файл.
a[NR]=$3
устанавливает элемент массива, индексированный по NR, для хранения значения третьего поля.
Программа awk в основном состоит из condition {action}
пар. Для текущей строки проверяется каждое условие, и если оно истинно, выполняется блок действия. Если условие отсутствует, будет выполнен блок действия - это относится к блоку {$2=a[FNR]}
. Если условие присутствует, но блок действия отсутствует, действие по умолчанию - вывести $ 0, который является текущей строкой после любых преобразований. Поскольку ненулевое число эквивалентно true, 1
указывает awk выполнить действие по умолчанию для каждой строки.
Причина, по которой первый файл не распечатан, связана с инструкцией next
в первом блоке.