Bash 使用 sed 和 2 个变量替换行

Bash replace line using sed and 2 variables

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

我做错了什么?我看过了,似乎适合我。

解决问题的最简单方法是更改​​ s 命令的分隔符。将您的 sed 命令更改为:

sed -i "s%${varFind}%${varReplace}%" /usr/local/file.txt

只要您的变量不包含 %.

,此方法就有效