• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

jq

date: 2023-12-10 excerpt: jqの使い方

tag: jqjsoncli


jqの使い方

概要

  • コマンドラインで動作するJSONパーサー
  • . が匿名の変数として使える
  • .[] が配列の展開となる
  • | でパイプライン
  • jq -C | less -R でページング時に色付け

インストール

ubuntu/debian

$ sudo apt install jq

macOS

$ brew install jq

具体例

pretty print

$ cat sample.json | jq .

配列の要素を選択

$ echo '{"name": "John", "age": 30}' | jq '.name'
# "John"

配列の要素を選択

$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[0].name'
# "John"

配列やオブジェクトをループして処理

$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[] | .name'
# "John"
# "Mike"

jsonのデータをcsv形式に変換

$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq -r '.[] | [.name, .age] | @csv'
"John",30
"Mike",20

フィルターを使って複雑な条件を指定

$ echo '[{"name": "John", "age": 30}, {"name": "Mike", "age": 20}]' | jq '.[] | select(.age > 25) | .name'
# "John"


jqjsoncli Share Tweet