3

这:

echo "Hel'lo" | sed s/\'/\\\'/g

产量

Hel'lo

我想要的是这样的:

Hel\'lo

我错过了什么?

4

4 回答 4

13
echo "Hel'lo" | sed "s/'/\\\'/g"
Hel\'lo

echo "Hel'lo" |  sed s/\'/\\\\\'/g
于 2012-07-17T01:21:55.133 回答
1

或者不引用 sed 参数:

echo "Hel'lo" | sed s/\'/\\\\\'/g
于 2012-07-17T01:22:23.417 回答
1

您也可以使用所有单引号来执行此操作:

echo "Hel'lo" | sed 's/'\''/\\'\''/g'

而且由于您的问题也被标记bash为 ,我不妨指出您甚至不需要 sed:

[ghoti@pc ~]$ foo="Hel'lo"
[ghoti@pc ~]$ echo "${foo/\'/\'}"
Hel\'lo
于 2012-07-17T06:14:26.887 回答
0

这可能对您有用:

echo "Hel'lo" | sed 's/'\''/\\&/'
于 2012-07-17T06:02:15.800 回答