jq中数组/对象值迭代器.[]的反向操作符是什么?
jq迭代器
.[]的反向操作 .[]作为jq的数组/对象值迭代器,对应的反向操作是使用方括号[],它可以将迭代产生的零散值重新收集组合成一个数组。- 针对你给出的命令示例,不能直接在
.[]后通过管道追加操作来恢复原数组结构,正确的写法是将整个迭代逻辑包裹在方括号中,命令如下:cat foo.json | jq '[ .[] ]' > foo2.json - 对应你的实际需求——修改每个数组元素的
subpart字段后重新组合成原数组结构,最终命令应为:
这里的方括号cat foo.json | jq '[ .[] | .subpart += {"changes": "here"} ]' > foo2.json[]就承担了把修改后的单个元素重新聚合为数组的“反向迭代”作用。
内容的提问来源于stack exchange,提问作者dfrankow
相关产品推荐
相关产品推荐

