说我有一个字符串:
'EffTimeStamp="20110203-210000"#InputCtxNm="Forigen Exchange Today"#RunType="EOD"#Age="90"
使用:
echo 'EffTimeStamp="20110203-210000"#InputCtxNm="Forigen Exchange Today"#RunType="EOD"#Region=US#Age="90"' \ | awk -F# -v OFS="\n" '{for (i=1;i<=NF; i++) printf("%s%s", $i, (i==NF ? "\n" : OFS)) }'
我将其转换为:
EffTimeStamp="20110203-210000"
InputCtxNm="Forigen Exchange Today"
RunType="EOD"
Region=US
Age="90"
我希望将它们导出为Shell变量。
注意:字符串中的变量数可能因用户自行决定而有所不同。
请帮忙。
答案 0 :(得分:1)
你的贝壳是什么?
假设bash,试试这个:
source <(awk -v RS="#" '{print "export " $0}' <<< "$string")
对于ksh,这应该可行
. <(printf "%s\n" "$string" | awk -v RS="#" '{print "export " $0}')
答案 1 :(得分:0)
在你的awk中,使用
printf("export %s%s"
然后将'echo'替换为'eval'。