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

Awa*_*riq 3 command-line sed

我正在尝试替换字符串

: 'development'
Run Code Online (Sandbox Code Playgroud)

: 'production'
Run Code Online (Sandbox Code Playgroud)

使用sed.

我尝试了几个选项,包括:

sed -i "s|: \'development\'|: \'staging\'|g" index.php
Run Code Online (Sandbox Code Playgroud)

但没有任何运气。输出:

sed: 1: "index.php": command i expects \ followed by text
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

des*_*ert 5

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

用双引号将字符括起来会保留引号内所有字符的字面值,但$, `, \, 和当启用历史扩展时,!.

因此,这些工作:

sed -i "s/: 'development'/: 'staging'/g" index.php
sed -i "s|: 'development'|: 'staging'|g" index.php
sed -i 's|: '\''development'\''|: '\''staging'\''|g' index.php
Run Code Online (Sandbox Code Playgroud)