2013-05-06 34 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/