我有一个具有以下初始结构的文件“ stats.json”“
[{
"price": 66.55,
"created": "2018-02-24T14:32:57"
}]
[使用bash / curl脚本,我每隔10分钟从api中获取一次数据,并将其保存到“ temp.json”
{
"price": 88.55,
"created": "2018-02-24T15:32:57"
}
我想合并temp.json(每10分钟更新一次,并填充stats.json文件。我试图用“ jq”来做,但是没有成功。
将temp.obj中的项目添加到stats.json中的数组的一种方法:
jq —-slurpfile temp temp.obj '. + $temp' stats.json
另一种方式:
jq —s '.[0] + [.[1]]' stats.json temp.json
((如果您想覆盖stats.json,则建议使用sponge
,如下所示。)
但是,如果有可能,将stats.json保留为JSONL格式的日志文件几乎可以肯定会更好:http://jsonlines.org/
即,temp.json中的每个对象将作为一行附加到stats.json:
jq -c temp.json >> stats.json
这当然是假设stats.json最初为空或已经采用JSONL格式。要将现有的stats.json转换为JSONL,可以执行以下操作:
cp -p stats.json stats.json.bak
jq -c .[] stats.json | sponge stats.json