2012-07-17 122 views
0

此:sed的替换 '与'

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

息率

Hel'lo 

我想是这样的:

Hel\'lo 

我缺少什么?

回答

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

而且

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

其实,你的第一个例子中有一个不必要的额外的反斜杠。在替换字符串中,由于'''不被视为特殊字符,所以不需要转义它。 'sed's /'/ \''/ g“' – ghoti 2012-07-17 06:10:43

1

或者没有引用sed的说法:

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

这可能会为你工作:

echo "Hel'lo" | sed 's/'\''/\\&/' 
0

您还可以使用所有单做报价:

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

而且,由于你的问题也标记庆典,我还不如指出的是,你甚至不需要SED:

[[email protected] ~]$ foo="Hel'lo" 
[[email protected] ~]$ echo "${foo/\'/\'}" 
Hel\'lo