我正在尝试使用sed和2变量替换文件中的一行。我试过这个:
varFind=$(echo "cfg_dir=/usr/local/.file1.cfg")
varReplace=$(echo "cfg_dir=/usr/dir1/file2.cfg")
sed -i "s/${varFind}/${varReplace}/" /usr/local/file.txt
但它不断抛出这个:
user@localhost:~# ./script.sh sed: -e expression #1, char 17: unknown option to `s'
我做错了什么?我看了,看起来对我来说是正确的。
答案 0 :(得分:2)
解决问题的最简单方法是更改sed
命令的分隔符。将您的sed -i "s%${varFind}%${varReplace}%" /usr/local/file.txt
命令更改为:
%
只要您的变量不包含{{1}}。
,这就有效