【问题标题】:Jq: recursively delete all keys that match a given patternJq:递归删除与给定模式匹配的所有键
【发布时间】:2017-07-26 21:13:42
【问题描述】:

如何递归删除与给定模式匹配的所有键?

我有以下 jq 配置,但它似乎不起作用:

walk( if (type == "object" and (.[] | test('.*'))) then del(.) else . end)

【问题讨论】:

    标签: json recursion key jq tree-traversal


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2016-07-28
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      相关资源
      最近更新 更多