【发布时间】:2015-11-10 16:16:07
【问题描述】:
我正在尝试使用 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'
我做错了什么?我看过了,它似乎对我来说是正确的。
【问题讨论】:
-
将真正的 string1 和 string2 添加到您的问题中。
-
您的示例按预期工作@Cyrus 假定
varReplace的varFind中有一个奇怪的字符,例如'/'。 -
如果我的变量类似于
varFind=$(echo "/usr/local/test.txt")会有问题吗? -
是的,
/用于分隔s的参数。您可以使用另一个分隔符,例如%。 -
但是
varFind中的字符串是什么类似于cfg_dir=/usr/local?我该如何解决这个问题?
标签: linux bash ubuntu sed scripting