[jq] オブジェクトの配列を特定のプロパティごとにグループ化する

作成日: 2026年09月10日

jq の group_by を使用すると、オブジェクトの配列を特定のプロパティの値ごとにグループ化できます。下記の例では、team の値ごとにオブジェクトをまとめています。

echo '[{"name":"Taro","team":"A"},{"name":"Hanako","team":"B"},{"name":"Jiro","team":"A"}]' | jq 'group_by(.team)'

実行結果は下記のとおりです。

[
  [
    {
      "name": "Taro",
      "team": "A"
    },
    {
      "name": "Jiro",
      "team": "A"
    }
  ],
  [
    {
      "name": "Hanako",
      "team": "B"
    }
  ]
]

説明

  • group_by(.team) は、.team の値が同じオブジェクトを同じ配列にまとめます。
  • 結果は、グループごとの配列を要素に持つ配列になります。
  • group_by は指定した値でソートしてからグループ化するため、この例では teamAB の順に並びます。
jq