Jq:递归删除与给定模式匹配的所有键
Posted
技术标签:
【中文标题】Jq:递归删除与给定模式匹配的所有键【英文标题】:Jq: recursively delete all keys that match a given pattern 【发布时间】:2017-07-26 21:13:42 【问题描述】:如何递归删除与给定模式匹配的所有键?
我有以下 jq 配置,但它似乎不起作用:
walk( if (type == "object" and (.[] | test('.*'))) then del(.) else . end)
【问题讨论】:
【参考方案1】:删除所有匹配模式(比如 PATTERN)的键的稳健方法(相对于不同的 jq 版本)是使用成语:
with_entries(select( .key | test(PATTERN) | not))
将其插入walk/1
会产生:
walk(if type == "object" then with_entries(select(.key | test(PATTERN) | not)) else . end)
【讨论】:
以上是关于Jq:递归删除与给定模式匹配的所有键的主要内容,如果未能解决你的问题,请参考以下文章