jq変形 {配列 => IDをキーとするオブジェクト}
Jul 3, 2019 15:30 · 181 words · 1 minute read
こんな配列を
[
{"id": "123", "name": "abc"},
{"id": "456", "name": "qwe"}
]
こうしたい
{
"123": {"id": "123", "name": "abc"},
"456": {"id": "456", "name": "qwe"}
}
add
を使うとできる
$ pbpaste | jq '{ (.id): . } | [ . ] | add'
{
"123": {
"id": "123",
"name": "abc"
},
"456": {
"id": "456",
"name": "qwe"
}
}
add
通常は足し算や文字列結合に使われるが、 オブジェクトの配列に適用すると、それぞれの要素をマージしたオブジェクトができる
[
{ "123": {"id": "123", "name": "abc"} }
{ "456": {"id": "456", "name": "qwe"} }
]
↓ こうなるイメージ
{
"123": {"id": "123", "name": "abc"},
"456": {"id": "456", "name": "qwe"}
}