Як динамічно збільшувати змінні? [зачинено]


-1

Вихідний файл, що має:

AAA BBB CCC DDD
XXX ZZZ YYY FFF

Код:

#!/bin/bash
while read line
do
        for n in `seq 1 4`
                do
                vr[$n]=$(echo -e "$line" | awk '{print $'$n'}')
                #test
                vr[$n]=${vr[$n]}
                echo ${vr[$n]}
                export ${vr[$n]}
        done
done < rst.txt

Я маю ці значення поза циклом. Динамічно збільшуючи змінні та зберігайте такі значення, як,

data_vr[1]=AAA
data_vr[2]=BBB
data_vr[3]=CCC
data_vr[4]=DDD
and 
default_vr[1]=XXX
default_vr[2]=ZZZ
default_vr[3]=YYY
default_vr[4]=FFF

Я маю ці значення за межами циклу. Заздалегідь спасибі.

Відповіді:


0

Ви повинні "імпортувати" значення $nдостовірного в awkнавколишнє середовище. Можливо, щось подібне може вам допомогти:

vr[$n]=$(echo -e "$line" | awk -F\, -v n=$n '{print $n}')

1
Це працює. Дуже дякую. Я можу скласти свою вимогу.
Харіш

Ромео Нінов, у моєму файлі є "," Деліметр кома, тож де ми можемо додати поданий роздільник до команди. Будь ласка, підкажіть мені.
Харіш

@Harisha, будь ласка, перевіри мою відредаговану відповідь
Ромео Нінов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.