JSON JQ - 使用两个语句进行过滤

问题描述 投票:0回答:1

我正在使用下面的内容,它工作得很好,但我想在过滤中添加一个变量,最好是“包含”,因为我想根据包含不同字符串的操作系统字段来过滤这个变量:

curl -H“接受:application/json;indent=4”-H“授权:令牌$token”“$url_devices”-k | jq -r --arg 设备“$device”'.results[] | select(.cluster.name == $cluster) | .primary_ip.address'

提前谢谢您!

尝试过

curl -H“接受:application/json;indent=4”-H“授权:令牌$token”“$url_devices”-k | jq -r --arg 设备“$device”'.results[] | select(.cluster.name == $cluster AND .cluster.os == $os) | .primary_ip.address'

但没有成功

json jq
1个回答
0
投票

您可以轻松链接多个

select
过滤器:

.results[]
| select(.cluster.name == $cluster)
| select(.cluster.os == $os)
| .primary_ip.address

或用

and
组合多个谓词(注意大小写):

.results[]
| select(.cluster.name == $cluster and .cluster.os == $os)
| .primary_ip.address

结果是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.