如何从 printf 输出中获取变量并将其定义为另外两个变量的值

How to take variable from printf output and define as value of two other variables

我有一个 .txt 输入文件,它是将每一行定义为 POV(n)="sequenceX,yearY"

的 printf 的产物
cat output.PA
POV01="SEQ010,FY15"
POV02="SEQ010,FY16"
POV03="SEQ020,FY15"
POV04="SEQ020,FY16"

我如何获取此文件,以便我可以将每个 POV 分别导出为给定行的序列和 fy 的变量值?

export POV(n)="$seq,$fy"

我用来获取这一点的printf如下:

cat step1
while read -r seq fy; do
        printf 'POV%02d="%s,%s"\n' ${counter} ${seq} ${fy}
        (( counter = counter + 1 ))
done <test_scenario_02.txt > output.PA

如果我来源 output.PA 我得到以下信息:

./step2
POV00=YEAR,
POV01=SEQ010,FY15
POV02=SEQ010,FY16
POV03=SEQ020,FY15
POV04=SEQ020,FY16
POV05=SEQ030,FY15
POV06=SEQ030,FY16
POV07=SEQ030,FY15
POV08=SEQ030,FY16
POV09=SEQ040,FY15
POV10=SEQ040,FY16
POV11=SEQ050,FY15
POV12=SEQ050,FY16
$ cat step2
. ./output.PA
set | grep "^POV"

一点也不清楚你想要什么,但看起来你正在尝试创建一个数组变量来保存 output.PA 中的所有值。您可能不需要这样做,但这应该可行:

$ pov=($(sed -e 's/[^"]*"//' -e 's/"$//' output.PA))
$ echo ${pov[0]}
SEQ010,FY15
$ echo ${pov[1]}
SEQ010,FY16
$ echo ${pov[2]}
SEQ020,FY15