[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は指定した値でソートしてからグループ化するため、この例ではteamがA、Bの順に並びます。