如何从 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
我有一个 .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