0

假设我有一个字符串:

'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 变量。

注意:字符串中的变量数量可能会因用户而异。

请帮忙。

4

2 回答 2

1

你的壳是什么?

假设 bash,试试这个:

source <(awk -v RS="#" '{print "export " $0}' <<< "$string")

对于 ksh,这应该有效

. <(printf "%s\n" "$string" | awk -v RS="#" '{print "export " $0}')
于 2012-05-07T16:58:32.460 回答
0

在你的 awk 中,使用

printf("export %s%s"

然后用“eval”替换“echo”。

于 2012-05-07T16:24:04.727 回答