sed并用$变量替换字符串

时间:2012-02-17 13:48:32

标签: bash sed

我有点问题。

我尝试用文件中的$变量替换字符串(一行)。

所以我使用命令:

sed -i -e "s/conf .*/conf = $PATH_CONF/g" generals.conf

如果PATH_CONF不包含像“/”这样的特殊字符,则它正在工作。

但是PATH_CONF包含一个路径(/ home / etc。)所以它有几个“/”,然后我收到一个错误:

 bad flag in substitute command: 'h' 

那么我该如何在$ variable中加入特殊字符?

感谢。

1 个答案:

答案 0 :(得分:8)

尝试:

sed -i -e "s@conf .*@conf = $PATH_CONF@g" generals.conf

你需要相同的字符作为分隔符(这里是@),而不是必须的三个/。