如何替换conf文件中的文本

时间:2016-10-29 19:51:02

标签: bash sed delimiter string-substitution

我需要替换conf文件中的followin参数:

    DocumentRoot /var/www/html

我需要将/var/www/html设置为/var/www/www.something.ee

www.something.ee是变量$WEBPAGE

到目前为止,我有这个:

sed -i "s/DocumentRoot /var/www/html /DocumentRoot /var/www/$WEBPAGE/g" /etc/apache2/sites-available/$WEBPAGE.conf

但是由于它包含斜杠,因此命令不想运行。在它们周围放置撇号似乎不想工作:

  

无法打开文件ww / html'/'DocumentRoot /var/www/www.something.ee'/g:没有这样的文件或目录

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

使用sed,您可以使用任何分隔符...

 sed 's@oldText@newText@g'
 sed 's#oldText#newText#g'

所以如果/困扰你,请使用不同的分隔符。

答案 1 :(得分:1)

您可以选择使用斜杠以外的分隔符。您也不需要g选项,因为搜索没有多次出现

sed -i "s!DocumentRoot /var/www/html !DocumentRoot /var/www/$WEBPAGE!" /etc/apache2/sites-available/$WEBPAGE.conf