如何使用sed
变量将匹配的模式替换为EXPORT
变量?还是有一种方法可以在调用sed
文件时访问shell脚本变量?
for i in ./data/*.sav;
do
read_input (){
read number_one number_two
read date1 inventory
read price
} < $i
read_input
export number_one
export i
export number_two
export inventory
export price
sed -f test.sed $2
done
s/Filename/$i/g
s/1stplace/$number_one/g
s/2ndplace/$number_two/g
s/\$\$\$\$/$price/g
Jonathan Lee
12/12/2019 2
1000
答案 0 :(得分:0)
如果将所有sed命令放在sed脚本文件中,将无法将变量传递给它。
您需要做的是在命令行级别传递所有sed命令,并使用双引号"
来使bash / shell解释$
并进行适当的变量替换。您不需要export
变量,因为在创建sed
子过程之前,shell将完成变量替换。
sed 's/Filename/'"$i"'/g;s/1stplace/number_one/g;s/2ndplace/number_two/g;s/\$\$\$\$/price/g'