【发布时间】:2020-09-21 09:21:40
【问题描述】:
我有一个 24 GB 的边缘大文件,其中包含 22M JSON 对象的数组。我必须对每个 JSON 对象进行一些操作并写入另一个文件。我正在使用以下命令
jq -cn --stream 'fromstream(1|truncate_stream(inputs))' test.json \
| jq -c ' if has ("middleName") then .sortableMiddleName=.middleName else . end | if has("middleName") then .middleName=[.middleName] else . end' \
> test_new.json
该命令可以正常工作,但输出包含由换行符分隔的 JSON 对象,并且没有父数组。例如,最初,文件的结构如下所示
[
object 1,
object 2,
........,
.........
]
文件处理后,输出文件的结构如下。
object 1
object 2
........
........
这里没有数组括号,而且每个对象都用换行符分隔。我想将其转换为原始结构,数组由逗号分隔的对象组成而不影响内存
感谢任何帮助
【问题讨论】:
标签: arrays json linux stream jq