sed
2013-04-22 147 views 25 likes 
25

我試圖用單引號替換字符串中的所有雙引號。 這裏我表達:用單引號替換所有雙引號

echo "<a href=\"#\" id=\"resendActivationMailLink\">here</a>" | sed "s/\"/'/" 

可惜只有第一雙引號替換:S

<a href='#" id="resendActivationMailLink">here</a> 

什麼想法?

回答

55

您需要通過g標誌sed

sed "s/\"/'/g" 
+10

爲了幫助記住這一點,它是'g' for'global'。 – RichieHindle 2013-04-22 18:29:38

+0

'回聲''早上好了''| sed's /「/ \\」/ g'' – YumYumYum 2017-02-09 08:59:14

32

你可以在這裏使用tr,簡潔,少報價頭痛:

tr '"' "'" 
+1

+1非常好的替代方案,還有更好的sed。 – Zounadire 2013-04-22 20:18:30

3

這可能會爲你工作:

sed "y/\"/'/" file 
+0

這會在命令行上輸出文件,你怎麼讓它改變文件本身? – 2017-04-05 13:23:39

+1

@JasonBourne你可以添加'-i'開關來編輯文件inplace,即'sed -i「y/\」/'/「file' – potong 2017-04-05 14:36:04

相關問題