Bash使用sed和2变量替换行

时间:2015-08-17 21:55:29

标签: linux bash ubuntu sed scripting

我正在尝试使用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'

我做错了什么?我看了,看起来对我来说是正确的。

1 个答案:

答案 0 :(得分:2)

解决问题的最简单方法是更改​​sed命令的分隔符。将您的sed -i "s%${varFind}%${varReplace}%" /usr/local/file.txt 命令更改为:

%

只要您的变量不包含{{1}}。

,这就有效