从forloop读取sed中的变量

时间:2017-02-20 13:01:46

标签: arrays shell unix sed

我正在尝试使用sed读取文件并更改文件中的变量,但是sed并没有读取变量的值。

在这里,我想将@@替换为market并将输出放在另一个文件中

markets=au,uk,ca

IFS="," read -ra items <<<"$markets"

for item in "${items[@]}"
do
    echo "country is :: $item"
    sed -i 's/@@/${!item}/g' sample_guid >> /test/eric/Guid_del
done

1 个答案:

答案 0 :(得分:0)

当sample_guid看起来像 这是市场@@的一个例子。我想在这里填补市场。
如果你想为不同的市场做这件事, 通过额外的参数使用printf的功能:

printf "This is an example for market %s. I want the market filled in here.\n" au uk ca

当sample_guid真的只有一个@@时,您可以将printf解决方案扩展为

printf "$(sed 's/@@/%s/' sample_guid)\n" $(tr "," " " <<< "${markets}")