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

时间:2015-12-08 09:25:51

标签: bash apache ubuntu vim sed

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

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

我虽然有点像(语法错误 - 我知道 - 只是为了说明我的观点):

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

也许不是vim而是其他? 有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

You should use sed with the substitute command for that kind of operation.

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

答案 1 :(得分:1)

将sed与参数-i一起使用。

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

参数-i启用就地编辑。