如何替换conf文件中的文本

How to replace texts in conf file

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

    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

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

couldn't open file ww/html' /'DocumentRoot /var/www/www.something.ee'/g: No such file or directory

有什么想法吗?

使用 sed,您可以使用任何定界符...

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

因此,如果 / 打扰了您,请使用不同的分隔符。

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

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