LINUX.ORG.RU

Передать в awk ассоциативный массив из скрипта

 ,


0

1

Есть в скрипте на bash ассоциативный массив. В том же скрипте выполняется awk-команда. Как бы мне передать в awk ассоциативный массив из bash? Пока мысль только о передачи одной строки с разделителями «key1;val1;key2;val2;...» из которой внутри awk заново собирать массив.

★★

man bash

man awk

anonymous
()

никак.

только поэлементно.

emulek
()

Пока мысль только о передачи одной строки с разделителями «key1;val1;key2;val2;...» из которой внутри awk заново собирать массив.

Тогда уж awk -v ${key1}=${value1} -v ${key2}=${value2} …, где keyX и valueX — ключи и значения исходного массива. Соответственно, внутри awk работать с переменными keyX.

dexpl ★★★★★
()
Ответ на: комментарий от sambist

Дампнуть массив в баше в строку (например), передать в awk одной переменной, на стороне awk распарсить через match например

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

можно через файл.
ключ-значение через пробел.
awk 'BEGIN {ARRNAME=«arrays.txt»; while (getline < ARRNAME) { array[$1]=$2 }; } {print «MAIN CYCLE»};'

bl ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.