SED命令无法在Vagrant Init脚本中工作

时间:2016-05-11 10:58:59

标签: bash sed centos vagrant vagrantfile

我有一个sed命令可以定制httpd.conf文件,并且可以从命令行完美运行:

sudo sed -i 's/DocumentRoot \"\/var\/www\/html\"/DocumentRoot \"\/var\/www\/html\/web\"/' /etc/httpd/conf/httpd.conf

但是,当作为Vagrant init脚本中config.vm.provision的一部分包含在内时,它会失败,如下所示:

default: sed: 
==> default: couldn't open file ww/html"/DocumentRoot "/var/www/html/web"/: No such file or directory
==> default: sed: -e expression #1, char 44: expected newer version of sed
==> default: sed: -e expression #1, char 43: unknown option to `s'

我尝试过逃避但我尝试的任何工作都没有。我哪里错了?

1 个答案:

答案 0 :(得分:1)

sed中,您可以更改regex substitution标记。在这里,我将/更改为~,以便更清楚地了解命令。

sed -i 's~DocumentRoot "/var/www/html"~DocumentRoot "/var/www/html/web"~' file