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
只要您的变量不包含 %
.
,此方法就有效
我正在尝试使用 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
只要您的变量不包含 %
.