Ich habe dieses JSON und ich möchte die ID des entsprechenden Subnetzes, die das variable Subnetz passen.regex-like Suche in einem JSON mit jq
subnet="192.168.112"
json='{
"subnets": [
{
"cidr": "192.168.112.0/24",
"id": "123"
},
{
"cidr": "10.120.47.0/24",
"id": "456"
}
]
}'
Da Regex nicht mit jq unterstützt wird. Der einzige Weg, ich die richtige ID bekommen zu finden ist mixte grep, sed und jq wie folgt aus:
tabNum=$((`echo ${json} | jq ".subnets[].cidr" | grep -n "$subnet" | sed "s/^\([0-9]\+\):.*$/\1/"` - 1))
NET_ID=`echo ${json} | jq -r ".subnets[${tabNum}].id"`
Gibt es eine Möglichkeit, die ID zu bekommen nur jq mit?
Regulärer Ausdruck wird in jq 1.5 unterstützt. Überlegen Sie, das zu verwenden –