ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

JSON のレコード件数を jq コマンドでカウントする方法について

jq コマンドで json のレコード件数をカウントする方法をメモします。

json のレコード件数をカウント

以下のような json を準備します。

$ jq . hoge.json 
[
  {
    "id": 1,
    "name": "a"
  },
  {
    "id": 2,
    "name": "b"
  },
  {
    "id": 3,
    "name": "c"
  },
  {
    "id": 4,
    "name": "d"
  },
  {
    "id": 5,
    "name": "e"
  }
]

カウントするには、中身をパイプ '|' で jq コマンドに渡し フィルタに length を適用します。

$ jq . hoge.json |jq 'length'
5
$ cat hoge.json |jq 'length'
5

絞り込み

以下のような json を準備します。

$ cat hogehoge.json 
{
  "foo": [
    {"id":1,"name":"a"},
    {"id":2,"name":"b"},
    {"id":3,"name":"c"},
    {"id":4,"name":"d"},
    {"id":5,"name":"e"}
  ],
  "bar": [
    {"id":6,"name":"a"},
    {"id":7,"name":"b"},
    {"id":8,"name":"c"}
  ]
}

foo や bar 毎にカウントができます。

$ cat hogehoge.json | jq '.foo | length'
5
$ cat hogehoge.json | jq '.bar | length'
3