我有一个 sed 命令,它可以定制 httpd.conf 文件并在命令行中完美运行:
sudo sed -i 's/DocumentRoot \"\/var\/www\/html\"/DocumentRoot \"\/var\/www\/html\/web\"/' /etc/httpd/conf/httpd.conf
但是,当作为 config.vm.provision 的一部分包含在 Vagrant 初始化脚本中时,它会失败,如下所示:
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'
我尝试过转义,但我尝试过的都不起作用。我哪里错了?
最佳答案
在 sed
中,您可以更改 regex 替换
标记。在这里,我将 /
更改为 ~
以使命令更加清晰。
sed -i 's~DocumentRoot "/var/www/html"~DocumentRoot "/var/www/html/web"~' file
关于bash - SED 命令在 Vagrant Init 脚本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160597/