Целью данных JSON ниже является обновление значения поля dst
значением src
во всех элементах type
t
, независимо от глубины внутри дерева, в то же время время сохранения всей структуры данных.
Возможно ли это с jq
? Несколько моих попыток сводились к следующей команде, которая не работает для достижения намеченной цели:
$ jq -r 'map_values(select(.. | .type? == "t" |= (.dst = .src)))'
{
"a": "b",
"c": [
{
"type": "t",
"src": "xx",
"dst": "zz"
},
{
"type": "t",
"src": "xx",
"dst": "zz"
}
],
"d": [
{
"e": [
{
"type": "t",
"src": "xx",
"dst": "zz"
}
]
},
{
"type": "t2",
"src": "xx",
"dst": "zz"
}
]
}