【问题标题】:How to replace texts in conf file如何替换conf文件中的文本
【发布时间】:2016-10-29 19:51:01
【问题描述】:

我需要替换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

但是,由于它包含斜杠,因此该命令不想运行。在它们周围加上撇号似乎不起作用:

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

有什么想法吗?

【问题讨论】:

    标签: bash sed delimiter string-substitution


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,它不再报错,但是我无法将它保存到conf文件中,conf文件中仍然是旧信息。
    • 让它工作,问题出在不需要的额外空格键中。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-02-07
      • 2014-02-07
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      相关资源
      最近更新 更多