You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JQ按自定义严重级别排序软件漏洞数组?

用JQ按自定义严重级别排序漏洞数组

要实现按CRITICAL > HIGH > MEDIUM > LOW的自定义顺序排序漏洞数组,你可以借助优先级映射对象配合sort_by()函数完成,具体方案如下:

核心思路

创建一个映射对象,给每个严重级别分配优先级数值(数值越小优先级越高),让sort_by()根据该数值排序,而非依赖字符串的默认字母顺序。

具体JQ命令

针对你提供的JSON结构,执行以下命令即可完成排序:

.vulnerabilities |= sort_by( {"CRITICAL":0, "HIGH":1, "MEDIUM":2, "LOW":3}[.Severity] )

命令解释

  • {"CRITICAL":0, "HIGH":1, "MEDIUM":2, "LOW":3}:定义严重级别的优先级映射,CRITICAL对应0(最高优先级),LOW对应3(最低优先级)。
  • [.Severity]:从每个漏洞对象中提取Severity字段,映射为对应的优先级数值。
  • sort_by(...):根据映射后的数值对数组进行升序排序,最终得到自定义的严重级别顺序。

效果验证

将你提供的JSON输入用上述命令处理后,输出的vulnerabilities数组顺序会变为:

[
  {
    "CVEID": "CVE-2022-29458",
    "Product": "ncurses-base",
    "Severity": "CRITICAL",
    "Version": "6.3-2",
    "Description": "example"
  },
  {
    "CVEID": "CVE-2022-29458",
    "Product": "ncurses-base",
    "Severity": "HIGH",
    "Version": "6.3-2",
    "Description": "example"
  },
  {
    "CVEID": "CVE-2022-29458",
    "Product": "ncurses-base",
    "Severity": "MEDIUM",
    "Version": "6.3-2",
    "Description": "example"
  },
  {
    "CVEID": "CVE-2022-29458",
    "Product": "ncurses-base",
    "Severity": "LOW",
    "Version": "6.3-2",
    "Description": "example"
  }
]

内容的提问来源于stack exchange,提问作者z3plike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:27:42