2016-07-21 101 views
1

我解析了一些json数据,并且需要删除开始和结束大括号{}。我正在使用sed来执行此操作,但是从我可以告诉的大括号在sed中执行特殊功能并转义它们似乎并不奏效。这里有几个我尝试过的例子。我真的可以使用一个正常工作表达式。提前致谢!使用sed替换大括号

我试过的第一件事是行不通的。

sed 's/\{\}//g' 

我在这里找到的答案中的一些重做代码。

sed 's/\(\{\|\}\)//g' 
+0

你们是不是要删除所有'{'年代和'}'的或字符串'{}'?为了清晰起见,最好包含示例输入和所需的输出。 –

+0

@LevLevitsky我从数据中的各个点单独删除它们。大括号之间通常没有空格,如果这很重要,也可以在它之前出现。 – barefly

回答

6

我会用tr为:

tr -d '{}' < file.json 

随着sed它应该是:

sed 's/[{}]//g' file.json 

[{}]是一个字符类,这意味着{}

如果您要更改文件,请将-i选项改为sed或使用moreutilssponge工具。我喜欢它,因为它是通用的,这意味着它可以与任何命令的工作,无论它是否在就地编辑支持或不:

sed 's/[{}]//g' file.json | sponge file.json 
+0

它工作!谢谢!出于好奇,删除大括号的语法是什么? – barefly

+0

它是'sed's/[] [] // g'' :) – hek2mgl

+0

@ hek2mgl好东西,现在我的数据完全是我想要的。 – barefly