如何使用 awk 重新格式化 JSON? [复制]

Posted

技术标签:

【中文标题】如何使用 awk 重新格式化 JSON? [复制]【英文标题】:How can I reformat JSON with awk? [duplicate] 【发布时间】:2014-05-19 07:45:03 【问题描述】:

我在文本文件中有如下信息。

"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

【问题讨论】:

哦!,你想格式化json 顺便说一句,您似乎不是新用户。您还没有阅读help 中关于如何提出好问题的文章吗? 是的。我愿意。这是 REST 接口的输出。 【参考方案1】:

你可以使用

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

【讨论】:

【参考方案2】:

我建议使用 python?

python -m json.tool < file.json 

还有语法高亮:

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

【讨论】:

【参考方案3】:

这可能对你有用(GNU sed):

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

【讨论】:

以上是关于如何使用 awk 重新格式化 JSON? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用动态键格式化 json? [复制]

优雅的查看json文件

如何查看 json 对象的格式? [复制]

ls + awk 获取文件信息(json格式)

ls + awk 获取文件信息(json格式)

ls + awk 获取文件信息(json格式)