使用 SED 将字符串“Development”替换为“Staging”或“Production”

使用 SED 将字符串“Development”替换为“Staging”或“Production”

我正在尝试替换字符串

: 'development'

: 'production'

使用sed

我尝试了一些选项,包括:

sed -i "s|: \'development\'|: \'staging\'|g" index.php

但没有任何运气。输出:

sed: 1: "index.php": command i expects \ followed by text

有人可以帮忙吗?

答案1

您不需要在双引号内转义单引号,请参阅我的这个答案

将字符括在双引号中会保留引号内所有字符的文字值,但启用历史记录扩展时的$`、和除外。\!

因此,这些工作:

sed -i "s/: 'development'/: 'staging'/g" index.php
sed -i "s|: 'development'|: 'staging'|g" index.php
sed -i 's|: '\''development'\''|: '\''staging'\''|g' index.php

答案2

我建议:

sed "s/: 'development'/: 'production'/" index.php`

答案3

我设法解决了这个问题。结果在 Mac 机器上我必须使用 -i 来为 .bak 加后缀。但在 Linux 上,没有它也可以正常工作。我首先在本地机器上尝试查看输出,但失败了。

感谢大家的帮助。

相关内容