2012-07-17 116 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