首页 > 解决方案 > 使用通过“Jq”方法检索所需的抵消 json 对象

问题描述

标签: jsonshellunixsplitjq

解决方案


您可以使用 jq 函数的组合,to_entriesgroup_by为此加上一点 bash。

该片段将创建 25 个字符串("line 0","line 1"等),将它们按 5s 分组,并将它们写入文件0.json,1.json等。之前的所有内容to_entries都可以替换为任何列表。在您的情况下,您可以使用 slurp 标志-s将输入文件中的所有 JSON 对象放入列表中。

FILE_NUM=0
jq -nc '
  # create input
  ["line " + (range(25) | tostring)] | 

  # process input
  to_entries | group_by(.key / 5 | floor)[] | map(.value)
' | while read LINE; do echo "$LINE" > "/tmp/$((FILE_NUM++)).json"; done

推荐阅读