2013-05-06 42 views
0

我試圖使用awkgsub替換字符串}{},{如何替換} {帶},{使用gsub

我的嘗試是:

cat blobs.txt | awk '{gsub(/\\}\\{/,"},{"); print}' >> blobsDone.txt 

我看過的地方,像括號字符需要兩個反斜槓得到匹配,但不工作。有人可以幫我嗎?我瘋了。

+0

無用的貓! – 2013-05-06 12:30:50

+0

請參閱此幾篇文章:http://stackoverflow.com/questions/6520816/replacing-the-char-using-awk – 2013-05-06 12:35:41

+0

或者這一個:http://stackoverflow.com/questions/118839/gsub-partial-replace – 2013-05-06 12:36:14

回答

2

這將做到這一點直接

sed -i 's/}{/},{/g' blobsDone.txt 

中查找}{},{它是在blobsDone.txt發現任何時間替換。該文件將更新爲新內容。

如果不希望文件被更新做什麼,只是刪除-i參數。

櫃面它},{}{

sed -i 's/},{/}{/g' blobsDone.txt 
+0

OP要求'',{' - >'} {'所以你可能想要解決這個問題];但是除了我同意之外,這裏的正確工具是'sed'。 – 2013-05-06 12:38:42

+0

這很有趣,因爲我專注於問題的標題。然後在文本中他/她說的是相反的,在代碼中它就像我一樣。我會請他知道:)無論如何,謝謝你指出這一點! – fedorqui 2013-05-06 12:41:42

+0

感謝您的快速回復!如果不使用cat,我該如何指定輸入文件?然後,我意識到我在兩個托架之間有空間。我如何匹配它? – user2343163 2013-05-06 12:41:46

2
awk '{gsub(/}{/,"},{"); print}' blobs.txt >> blobsDone.txt 

WRT,以「我讀的地方,像括號字符需要兩個反斜槓」 - 谷歌正則表達式,特別是正則表達式的元字符,拿到書Effective Awk Programming,Third Edition作者:Arnold Robbins,http://www.oreilly.com/catalog/awkprog3/