[jq] オブジェクトの配列を特定のプロパティで並び替える

作成日: 2026年09月12日

jq の sort_by を使用すると、オブジェクトの配列を特定のプロパティの値で並び替えることができます。下記の例では、age の昇順で並び替えています。

echo '[{"name":"Taro","age":30},{"name":"Jiro","age":20},{"name":"Saburo","age":25}]' | jq 'sort_by(.age)'

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

[
  {
    "name": "Jiro",
    "age": 20
  },
  {
    "name": "Saburo",
    "age": 25
  },
  {
    "name": "Taro",
    "age": 30
  }
]

説明

  • sort_by(.age) は、各オブジェクトの age の値を基準に昇順で並び替えます。
  • 降順にしたい場合は sort_by(.age) | reverse とします。
  • 文字列のプロパティを指定した場合は、その文字列の値を基準に並び替えます。
jq