我正在尝试替换字符串
: '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)
有人可以帮忙吗?
您不需要在双引号内转义单引号,请参阅我的这个答案:
用双引号将字符括起来会保留引号内所有字符的字面值,但
$,`,\, 和当启用历史扩展时,!.
因此,这些工作:
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)