通过一行命令在Ubuntu中编辑conf文件

问题描述 投票:1回答:2

我想更改我的apache2 web服务器的默认Web根文件夹,但是通过我正在制作的脚本的命令行。

我知道通过nano / vim进行操作,然后转到该行并手动更改它,但我想通过命令行来实现。

我想过类似的东西(语法错误 - 我知道 - 只是为了说明我的观点):

vim /etc/apache2/sites-enabled/000-default.conf | find 'DocumentRoot /var/www' | replace 'DocumentRoot /var/www/myFolder'

也许不是与vim而是其他?任何的想法 ?

谢谢

bash apache ubuntu vim sed
2个回答
1
投票

使用带有参数-i的sed。

 sed -i 's-/var/www-&/MyFolder-' /etc/apache2/sites-enabled/000-default.conf

参数-i支持就地编辑。


1
投票

你应该使用sed和substitute命令进行那种操作。

http://www.grymoire.com/Unix/Sed.html#uh-0

我手头没有unix机器但是这样的东西应该可以工作(使用#而不是通常的/作为分隔符):

sed 's#/var/www#/var/www/MyFolder#' /etc/apache2/sites-enabled/000-default.conf

即使这不是你的问题,因为你的初始问题提到了Vim,你也可以使用Vim内部的替代品

喜欢

:%s #/var/war#/var/www/MyFolder#g

% means search in the whole file
g means globally : it will replace multiple instance if the string is found multiple times
© www.soinside.com 2019 - 2024. All rights reserved.