如何使用sed将匹配的模式替换为EXPORT变量?或者有没有一种方法可以在调用sed文件时访问外壳脚本变量?
shell_cript.sh
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
donetest.sed
s/Filename/$i/g
s/1stplace/$number_one/g
s/2ndplace/$number_two/g
s/\$\$\$\$/$price/gfile.sav
Jonathan Lee
12/12/2019 2
1000发布于 2019-03-19 08:57:17
如果将所有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'https://stackoverflow.com/questions/55231939
复制相似问题