Closed3

jq 便利な表現まとめ

harrythecodeharrythecode

初めに

jqはシェル芸で最もよく使われるコマンドですが、複数のデータを結合する際に非常に強力です。ここではいくつかのパターンを紹介していきます。

harrythecodeharrythecode

役立つものたち

複数のJSONデータを結合する

JSON_A='{"a": 1, "b": 2}'
JSON_B='{"c": 3, "d": 2}'
jq --slurp 'add' <(echo "$JSON_A") <(echo "$JSON_B")
{
  "a": 1,
  "b": 2,
  "c": 3,
  "d": 2
}

配列の中身を検索する

JSON_A='{"data": [{"id": 111, "name": "bob"}, {"id": 11, "name": "alice"}, {"id": 1, "name": "chris"}]}'
echo "$JSON_A"|jq '.data[]|select(.id | contains(1))'
{
  "id": 1,
  "name": "chris"
}

配列[]を外してJSONだけにする

JSON_A='{"data": [{"id": 111, "name": "bob"}, {"id": 11, "name": "alice"}, {"id": 1, "name": "chris"}]}'
echo "$JSON_A"|jq '.data|.[]'
{
  "id": 111,
  "name": "bob"
}
{
  "id": 11,
  "name": "alice"
}
{
  "id": 1,
  "name": "chris"
}
このスクラップは2022/10/18にクローズされました