【发布时间】:2018-11-04 21:30:52
【问题描述】:
以下 JSON 数据的目的是在 typet 的所有元素中将字段 dst 的值更新为 src 的值,而不管树内的深度如何,同时时间保留数据的整个结构。
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"
}
]
}
【问题讨论】: