将json文件的长行转换为可读文件

将json文件的长行转换为可读文件,json,linux,bash,shell,jq,Json,Linux,Bash,Shell,Jq,我需要关于如何将长行json文件转换为可读文件的帮助 这是json格式 "version": 1, "partitions": [{"topic": "Topic3", "partition": 7, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "partition": 4, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "pa

我需要关于如何将长行json文件转换为可读文件的帮助

这是json格式

"version": 1, "partitions": [{"topic": "Topic3", "partition": 7, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "partition": 4, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "partition": 15, "log_dirs": ["any"], "replicas": [2, 3, 0]}, {"topic": "Topic3", "partition": 9, "log_dirs": ["any"], "replicas": [2, 3, 0]}, {"topic": "Topic3", "partition": 12, "log_dirs": ["any"], "replicas": [2, 3, 0]}, {"topic": "Topic3", "partition": 1, "log_dirs": ["any"], "replicas": [3, 2, 0]}, {"topic": "CatchAllTopic", "partition": 0, "log_dirs": ["any"], "replicas": [0, 3, 2]}, {"topic": "Topic3", "partition": 17, "log_dirs": ["any"], "replicas": [0, 3, 2]}, {"topic": "Topic3", "partition": 6, "log_dirs": ["any"], "replicas": [2, 0, 3]}, {"topic": "Topic3", "partition": 3, "log_dirs": ["any"], "replicas": [2, 0, 3]}, {"topic": "Topic3", "partition": 14, "log_dirs": ["any"], "replicas": [0, 2, 3]}, {"topic": "Topic3", "partition": 0, "log_dirs": ["any"], "replicas": [2, 0, 3]}, {"topic": "Topic3", "partition": 11, "log_dirs": ["any"], "replicas": [0, 2, 3]}, {"topic": "Topic3", "partition": 16, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "partition": 8, "log_dirs": ["any"], "replicas": [0, 3, 2]}, {"topic": "Topic3", "partition": 2, "log_dirs": ["any"], "replicas": [0, 3, 2]}, {"topic": "Topic3", "partition": 13, "log_dirs": ["any"], "replicas": [3, 0, 2]}, {"topic": "Topic3", "partition": 5, "log_dirs": ["any"], "replicas": [0, 3, 2]}, {"topic": "Topic3", "partition": 10, "log_dirs": ["any"], "replicas": [3, 0, 2]}]}
或者实际上更像这样:

而我们希望文件的格式如下

更多file.json

{"partitions":
       [{"topic": "foo",
         "partition": 1,
          "replicas": [1,2,3],
          "log_dirs": ["any","any","any"]
       }],
.
.
.
.
.

如果出于某种原因无法安装jq,可以使用Python 3漂亮地打印json字符串:

echo '{ "name" : "Matias", "age": 32 }' | python3 -c 'import sys
import json
print(json.dumps(json.load(sys.stdin), indent="  "))
'
这将打印:

{
  "name": "Matias",
  "age": 32
}

希望有用。

也许
jq。json
?除非您能提供更多的上下文,@dibery的建议听起来是正确的。请参阅我的question@Judy使用
--compact output
选项到
jq
使其在一行上打印输出。两个示例输入都不是有效的JSON,并且都包含一个尾随的
}
,看起来首字母
{
也丢失了。请澄清——问题的实质是关于有效的JSON,还是关于修复损坏的数据以使其成为有效的JSON,还是其他什么?