我想使用bash脚本修改远程主机上存在的脚本。
我的bash脚本具有如下命令,可在远程主机上运行sed命令:
ssh user@domain.com "some_command"
我要用sed命令修改一个名为config.php的文件。
我想替换这样的字符串
'debug' => true
有了这个
'debug' => false
sed命令(不起作用)是这样的:
sed 's/'debug'->true/'debug'=>false/g' config.php > newconfig.php
正确使用sed命令是什么,如何使它正确转义ssh“”命令中的所有字符?
最佳答案
尝试这样做:
$ sed -r "s@('debug'\s*=>\s*).*@\1false@" file
'debug' => false
因此:
ssh user@host<<'EOF'
sed -i -r "s@('debug'\s*=>\s*).*@\1false@" /PATH/TO/config.php
EOF
关于bash - sed将字符串替换为单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27391297/