Tôi có json này và tôi muốn lấy id của mạng con tương ứng phù hợp với mạng con biến.tìm kiếm giống như regex trong một json với jq
subnet="192.168.112"
json='{
"subnets": [
{
"cidr": "192.168.112.0/24",
"id": "123"
},
{
"cidr": "10.120.47.0/24",
"id": "456"
}
]
}'
Vì regex không được hỗ trợ với jq. Cách duy nhất tôi tìm thấy để có được id đúng là mixte grep, sed và jq như thế này:
tabNum=$((`echo ${json} | jq ".subnets[].cidr" | grep -n "$subnet" | sed "s/^\([0-9]\+\):.*$/\1/"` - 1))
NET_ID=`echo ${json} | jq -r ".subnets[${tabNum}].id"`
Có cách nào để lấy id chỉ sử dụng jq không?
Biểu thức chính quy được hỗ trợ trong câu 1.5. Hãy xem xét việc sử dụng đó. –