如何用jq仅输出不存在some_condition或值为null的displayName
正确的jq命令实现需求
可用命令
jq -r '.entities[] | select(.properties.kubernetesLabels.some_condition == null) | .displayName' file.json
工作原理
.entities[]遍历entities数组中的每一项select(...)筛选出两种情况的对象:some_condition字段本身不存在(jq中访问不存在的字段会返回null)some_condition字段的值为null
.displayName仅提取符合筛选条件对象的displayName值
测试结果
针对你提供的JSON文件,执行命令后会输出:
host567.abc.com
原命令的问题
你之前的命令用逗号分隔了.displayName和select(...),这会让jq先输出所有对象的displayName,再输出符合select条件的完整对象,自然不符合只输出目标displayName的要求。需要用管道|串联筛选和提取操作,确保只处理符合条件的对象并输出指定字段。
内容的提问来源于stack exchange,提问作者Creech_904
相关产品推荐
相关产品推荐

