2014-04-07 43 views
0

我在文本文件中提供了以下信息。如何使用awk重新格式化JSON?

{"00:00:00:00:00:00:02:03":[{"controllerId":"onos-primary"}],"00:00:00:00:00:00:02:02":[{"controllerId":"onos-primary"}],"00:00:00:00:00:00:02:01":[{"controllerId":"onos-primary"}],"00:00:00:00:00:00:02:06":[{"controllerId":"onos-primary"}],"00:00:00:00:00:00:02:05":[{"controllerId":"onos-primary"}],"00:00:00:00:00:00:02:04":[{"controllerId":"onos-primary"}]} 

我想要这样的信息。

{ 
"00:00:00:00:00:00:02:03":[{"controllerId":"onos-primary"}], 
"00:00:00:00:00:00:02:02":[{"controllerId":"onos-primary"}], 
"00:00:00:00:00:00:02:01":[{"controllerId":"onos-primary"}], 
"00:00:00:00:00:00:02:06":[{"controllerId":"onos-primary"}], 
"00:00:00:00:00:00:02:05":[{"controllerId":"onos-primary"}], 
"00:00:00:00:00:00:02:04":[{"controllerId":"onos-primary"}] 
} 

如何使用Linux命令行实现这一功能?我愿意用awk或SED或简单的bash

+2

_Oh,_要格式化'json'! – devnull

+0

顺便说一句,你似乎并不是一个新用户。你没有阅读[help](http://stackoverflow.com/help)关于如何提出一个很好的问题吗? – devnull

+0

yes.I do.It是来自REST接口的输出。 – liv2hak

回答

2

您可以使用

awk '{sub('/^{/', "{\n", $0); sub('/}$/', "\n}", $0); gsub('/,/', ",\n", $0); print;}' filename 
1

我的,我建议蟒蛇?

python -m json.tool < file.json 

而且有语法突出显示:

python -m json.tool < file.json | highlight --syntax js -O xterm256 
0

这可能为你工作(GNU SED):

sed -r 's/\{(.*)\}/{\n\1\n}/;s/,/&\n/g' file