【问题标题】:Edit conf file in Ubuntu through one line command通过一行命令在 Ubuntu 中编辑 conf 文件
【发布时间】:2016-03-13 03:41:25
【问题描述】:

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

我知道通过 nano/vim 来做,然后去该行手动更改它,但我想通过命令行来做。

我想到了一些类似的事情(语法错误 - 我知道 - 只是为了说明我的观点):

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

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

谢谢

【问题讨论】:

  • user1902346 答案之一有帮助吗? ✓

标签: bash apache ubuntu vim sed


【解决方案1】:

您应该使用sed 和替换命令来进行这种操作。

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

【讨论】:

  • 其实你可以自动修改文件vim:vim -c "%s #/var/www#/var/www/MyFolder#g" -c wq /etc/apache2/sites-enabled/000-default.conf
【解决方案2】:

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

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

参数-i 启用就地编辑。

【讨论】:

  • 谢谢大家。似乎 sed 会完成这项工作。我不熟悉它。
猜你喜欢
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
相关资源
最近更新 更多