如何使用jq和regex选择json属性?

时间:2017-08-28 17:18:16

标签: json regex jq

我有一个json文件,如下所示:

{
  "Resources": {
    "NodeLaunchConfig123456789": {
      ...
    }
  }
}

如何使用NodeLaunchConfig123456789jq等正则表达式选择属性NodeLaunchConfig\w+

1 个答案:

答案 0 :(得分:2)

以下是使用with_entriesmatch的解决方案。

def condition:
  .key|match("NodeLaunchConfig[a-zA-Z0-9_]+")
;
{
  Resources: .Resources | with_entries(select(condition))
}

如果您不想将条件分解为单独的函数,可以使用

{
  Resources: .Resources | with_entries(select(.key|match("NodeLaunchConfig[a-zA-Z0-9_]+")))
}

根据您的实际数据,只需将更新分配|=缩短为以下内容即可缩短:

.Resources |= with_entries(select(.key|match("NodeLaunchConfig[a-zA-Z0-9_]+")))