如何用jq修改JSON数组中指定元素(未知索引)
使用jq修改JSON数组中指定元素的方法
直接利用jq的map函数结合条件判断就能实现,不需要知道目标元素的索引位置:
基础命令
jq '.run_list |= map(if . == "role[test09]" then "role[hello]" else . end)' input.json
命令说明
.run_list |= ...:定位到run_list字段,并用后续处理结果更新该字段map(...):遍历数组中的每一个元素- 条件逻辑:当元素等于
"role[test09]"时替换为"role[hello]",其余元素保持原样
原地修改原文件
如果需要直接修改输入文件,添加-i参数即可:
jq -i '.run_list |= map(if . == "role[test09]" then "role[hello]" else . end)' input.json
内容的提问来源于stack exchange,提问作者Rollo
相关产品推荐
相关产品推荐

