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

如何使用jq实现同个键匹配多个值的JSON数据筛选

jq多值匹配select语句解决方案

方法1:直接使用逻辑或运算符(适合少量匹配值)

直接在select条件里用or连接多个等值判断即可,完整命令如下:

system_profiler -json SPPCIDataType | jq -r '.SPPCIDataType[] | select(.sppci_device_type == "sppci_audiodevice" or .sppci_device_type == "sppci_nvme")._name'

执行后会输出3条匹配结果:

pci1002,aaf0
pci144d,a808
pci144d,a808

方法2:使用IN内置函数(适合多匹配值场景)

如果需要匹配的目标值数量较多,重复写or语句冗余,可以用jq的IN函数,把所有待匹配的值作为参数传入,写法更简洁易维护:

system_profiler -json SPPCIDataType | jq -r '.SPPCIDataType[] | select(.sppci_device_type | IN("sppci_audiodevice", "sppci_nvme"))._name'

兼容老版本jq的替代写法

如果你的jq版本低于1.6不支持IN函数,可以用index方法实现相同效果:

system_profiler -json SPPCIDataType | jq -r '.SPPCIDataType[] | select( ["sppci_audiodevice", "sppci_nvme"] | index(.sppci_device_type) )._name'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:57:05