如何使用jq筛选os_version为13.3.1的设备device_id
使用jq筛选特定OS版本的设备ID
首先你提供的JSON数据存在语法错误(多嵌套了一层大括号),修正后的正确JSON结构如下:
[ { "agent_installed": true, "agent_version": "", "asset_tag": "", "blueprint_id": "", "blueprint_name": "", "device_id": "d35feff4-7867-268a-zet1-82caa4bcf5a0", "device_name": "Spare's MacBook Air", "model": "MacBook Air", "os_version": "13.3.1", "platform": "Mac", "serial_number": "FK1VXASVRFS2E" } ]
可以通过jq的select函数实现精准筛选,直接返回os_version为13.3.1的设备ID,对应命令如下:
jq -r '.[] | select(.os_version == "13.3.1") | .device_id'
命令逻辑拆解:
.[]:遍历JSON数组中的每一个设备对象select(.os_version == "13.3.1"):筛选出os_version字段值严格等于"13.3.1"的对象.device_id:仅提取符合条件对象的device_id字段内容输出
如果需要保留device_id=xxx的格式,可调整命令为:
jq -r '.[] | select(.os_version == "13.3.1") | "device_id=\(.device_id)"'
内容的提问来源于stack exchange,提问作者BlackCry
相关产品推荐
相关产品推荐

