2013-11-01 20 views
1

我對sed的用法有點困惑,因爲用(')雙引號替換(')單引號我在sed中嘗試了很多組合,但不知怎的,它不允許這樣做尤其是轉換sed用法(')

任何援助將是非常讚賞

PS:我很開放,以及替代等方法,但應在bash運行正常(UNIX)

+0

你嘗試什麼組合? –

+0

我在這裏得到了我的答案 - > http://stackoverflow.com/questions/16154007/replace-all-double-quotes-with-single-quotes ...應該早點檢查 – Marcos

+0

http://stackoverflow.com/questions/16154007 /用單引號替換所有雙引號 – Marcos

回答

1

你可以試試像這樣:

[ ~]$ echo "'Hello'"|sed "s/'/\"/g" 
"Hello" 

和反向:

[ ~]$ echo \"Hello\"|sed "s/\"/'/g" 
'Hello' 

否則,你可以使用tr而不是sed,如果你想:

[ ~]$ echo \"Hello\"|tr "\"" "'" 
'Hello' 
2

您可以使用是:

s='abc"def"123' 
echo "$s"|sed "s/\"/'/g" 

abc'def'123 
2

對於僅更換一個字符,你不妨使用tr

$ printf '%s\n' '"Hello"' | tr \" \' 
'Hello' 

現在我希望你不使用這個莫名其妙「的sanitize」一些用戶輸入...

0

這可能會爲你工作:

sed 'y/'\''/"/' file