regex comme la recherche dans un json avec jq

J'ai json et je veux obtenir l'id du sous-réseau correspondant qui correspondent à la variable de sous-réseau.

subnet="192.168.112"
json='{
  "subnets": [
    {
      "cidr": "192.168.112.0/24",
      "id": "123"
    },
    {
      "cidr": "10.120.47.0/24",
      "id": "456"
    }
  ]
}'

Depuis regex n'est pas pris en charge avec jq. Le seul moyen que j'ai trouvé pour obtenir l'id de droite est-à-mixte grep, sed et jq comme ceci :

tabNum=$((`echo ${json} | jq ".subnets[].cidr" | grep -n "$subnet" | sed "s/^\([0-9]\+\):.*$//"` - 1))
NET_ID=`echo ${json} | jq -r ".subnets[${tabNum}].id"`

Est-il un moyen pour obtenir l'id en utilisant uniquement jq ?

Les expressions régulières sont pris en charge dans jq 1.5. Envisager d'utiliser cela.

OriginalL'auteur mguerin | 2015-07-15