这:
echo "Hel'lo" | sed s/\'/\\\'/g
产量
Hel'lo
我想要的是这样的:
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/'\''/\\&/'