【问题标题】:How to substitute }{ with },{ with gsub如何用 } 替换 }{ 用 gsub
【发布时间】:2013-04-30 05:04:22
【问题描述】:

我正在尝试使用 awkgsub 将字符串 }{ 替换为 },{

我的尝试是:

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

我在某处读到,括号之类的字符需要两个反斜杠才能匹配,但不起作用。有人可以帮我吗?我快疯了。

【问题讨论】:

标签: awk gsub


【解决方案1】:

这会直接做

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

在 blobsDone.txt 中找到 }{ 并替换为 },{。该文件已更新为新内容。

如果您不想更新文件,只需删除-i 参数即可。

如果是},{}{

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

【讨论】:

  • OP 想要反过来 },{-> }{ 所以你可能想解决这个问题 ;-) 但除此之外,我同意,这里的正确工具是 sed .
  • 这很有趣,因为我专注于问题的标题。然后在文本中他/她说相反,在代码中就像我一样。我会问他:)无论如何,谢谢你指出这一点!
  • 感谢您的快速回复!如果不使用 cat,如何指定输入文件?然后,我才意识到两个括号之间有一个空格。如何匹配?
  • @user2343163,sed 得到它。 cat file | sed somethingsed something file 相同。
  • 对不起,我在找这个:}{-> },{
【解决方案2】:
awk '{gsub(/}{/,"},{"); print}' blobs.txt >> blobsDone.txt

写到“我在某处读过像括号这样的字符需要两个反斜杠”——谷歌正则表达式,尤其是正则表达式元字符,并获得阿诺德·罗宾斯 (Arnold Robbins) 所著的《Effective Awk Programming, Third Edition》一书,http://www.oreilly.com/catalog/awkprog3/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多