This:
echo "Hel'lo" | sed s/\'/\\\'/g
收益率
Hel'lo
What I want is this:
Hel\'lo
我漏掉了什么?
echo "Hel'lo" | sed "s/'/\\\'/g"
Hel\'lo
另外
echo "Hel'lo" | sed s/\'/\\\\\'/g
或者不使用引用sed参数:
echo "Hel'lo" | sed s/\'/\\\\\'/g
你也可以使用所有单引号来完成它:
echo "Hel'lo" | sed 's/'\''/\\'\''/g'
既然你的问题也标记了bash,我也可以指出你甚至不需要使用sed:
[ghoti@pc ~]$ foo="Hel'lo"
[ghoti@pc ~]$ echo "${foo/\'/\'}"
Hel\'lo
这个可能适合你:
echo "Hel'lo" | sed 's/'\''/\\&/'
'
没有被视为特殊字符,因此您不需要对其进行转义。sed "s/'/\\'/g"
- ghoti