用脚本替换文件中的字符串

用脚本替换文件中的字符串

替换字符串的方法之一sed可以如下完成:

sed -i 's/old_str/new_str/' file.txt

然而如果replace.sh

 sed -i 's/$1/$2/' $3

该命令./replace.sh old_str new_str file.txt似乎不起作用——replace.sh当然是在可执行之后。这是为什么?


我知道rpl它的作用与我打算做的完全一样replace.sh,但我想了解为什么它不起作用。

答案1

单引号内没有参数扩展(请参见之前在 stackoverflow 上的回答

toto=1
echo '$toto'
> $toto
echo "$toto"
> 1

只需将单引号替换为双引号,您的脚本就会执行您所期望的操作。

相关内容