Проблема заключается в том, что переменные оболочки (включая массивы) недоступны внутри awk
. Их необходимо явно передать с помощью параметра -v
. Более того, вы не можете передать весь массив, но вы можете поместить массив в одну переменную и разбить его внутри awk
:
awk -va="$(echo "${array[@]}")" 'BEGIN{OFS=FS=","; split(a,b," ")}{print $0,b[NR]}' input.csv
Это будет работать, пока у вас нет пробелов внутри элементов массива.