jq コマンド

参考:

jq [Official]

stedolan/jq: Command-line JSON processor – GitHub

ドキュメント

参考:

jq Manual (development version) [Official]

Cookbook · stedolan/jq Wiki – GitHub

Advanced Topics · stedolan/jq Wiki – GitHub

FAQ · stedolan/jq Wiki – GitHub

使い方

参考:

jq コマンドを使う日常のご紹介 – Qiita

JSON on the command line with jq | George Ornbo

導入

参考:

軽量 JSON パーサー jq のドキュメント jq Manual をざっくり日本語訳してみました|DevelopersIO

JSON 処理コマンド jq を使ってみた | ユニキャストラボ

jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE

JSON 処理コマンド jq を使ってみた | ユニキャストラボ

jq という JSON プロセッサーがすばらしすぎる | シンク株式会社

jq コマンドが実は高性能すぎてビビッた話 – beatsync.net

JSON データを jq コマンドを使ってシュッと加工する – タダケンの Enjoy Tech

入門

参考:

jq を活用して API レスポンス等から欲しい情報だけを抽出する 初級編|DevelopersIO

jq を活用して API レスポンス等から欲しい情報だけを抽出する 中級編|DevelopersIO

jq を活用して API レスポンスから欲しい情報を抽出する 上級編|DevelopersIO

Reshaping JSON with jq | Programming Historian

まとめ

参考:

jq チートシート – Qoosky

JSON Tools Jq – Hyperpolyglot

jq Cheet Sheet – GitHub Gist

整形

参考:

json 整形コマンドラインツール jq – Qiita

--slurp オプション

プロパティを抜き出してオブジェクトの配列を作る

$ echo '[{ "a": "1", "b": "2", "c": "3" }, { "a": "4", "b": "5", "c": "6" }]' | jq ".[] | { a, b }" | jq -s "."
[
  {
    "a": "1",
    "b": "2"
  },
  {
    "a": "4",
    "b": "5"
  }
]

オブジェクトをマージする

$ echo '[{ "a": "1", "b": "2", "c": "3" }, { "d": "4", "e": "5", "f": "6" }]' | jq ".[]" | jq -s add
{
  "a": "1",
  "b": "2",
  "c": "3",
  "d": "4",
  "e": "5",
  "f": "6"
}

参考:

複数の json ファイルを jq を使って merge する | DevelopersIO

Creating an array from objects? · Issue #684 · stedolan/jq – GitHub

How to merge 2 json file using jq? – Stack Overflow

-r オプション

参考:

How to convert embedded (quoted) json string to json – Unix & Linux Stack Exchange

reduce

オブジェクトの配列をマージして一つのオブジェクトにまとめる

$ echo '[{ "a": "1" }, { "b": "2" }, { "c": "3" }]' | jq "reduce .[] as \$obj ( {} ; . + \$obj )"
{
  "a": "1",
  "b": "2",
  "c": "3"
}

参考:

Merge objects into one · Issue #1016 · stedolan/jq – GitHub

add

参考:

Reducing JSON with jq – Stack Overflow

map

map して作成したオブジェクトをマージして一つのオブジェクトにまとめる

$ echo '[{ "key": "a", "value": "1" }, { "key": "b", "value": "2" }]' | jq "map({ (.key): (.value) }) | add"
{
  "a": "1",
  "b": "2"
}

参考:

QUESTION: A way to concatenate input objects into one · Issue #70 · stedolan/jq – GitHub

プロパティ (文字列) の連結

参考:

Concat 2 fields in JSON using jq – Stack Overflow

プロパティを追加する

参考:

Add a new element to an existing JSON array using jq – Stack Overflow

keys/values/to_entries

参考:

How to use `jq` to obtain the keys – Stack Overflow

print key and value for each entry in an object – Stack Overflow

jq print key and value for all in sub-object – Unix & Linux Stack Exchange

type

参考:

How to get root keys and key types using jq – Stack Overflow

ビルトイン関数

参考:

jq/builtin.jq at master · stedolan/jq – GitHub

Tips

参考:

シェル芸で使いたい jq イディオム – Qiita

jq コマンドで覚えておきたい使い方17個 | 俺的備忘録 〜なんかいろいろ〜

jq recipes | Remy Sharp’s b:log

jq examples | reddit

Tagged:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です