shell jq输出排除键

c0vxltue  于 2023-03-09  发布在  Shell
关注(0)|答案(1)|浏览(108)

我需要从这个输出中排除字段_class

{
  "_class": "hudson.model.FreeStyleBuild",
  "displayName": "NAME-(#1498)",
  "number": 1498
}

我用来获取这个json的

curl -gn http://<jenkins-site>/job/<build-name>/api/json?tree=builds[displayName,number]&pretty=true | jq -r '.builds[] | select(.displayName | contains("NAME"))'

结果必须公正:

{
  "displayName": "NAME-(#1498)",
  "number": 1498
}

我尝试使用|notdel,但不适合我。

iih3973s

iih3973s1#

您只需使用del删除该字段:

… | jq '.builds[] | select(.displayName | contains("NAME")) | del(._class)'
{
  "displayName": "NAME-(#1498)",
  "number": 1498
}

注意:如果输出JSON,则-r标志不执行任何操作。

相关问题