Я пытаюсь захватить все массивы, которые соответствуют элементу, но у меня проблемы с возвратом всего.
Данные
cat testerr.json | jq .''
{
"circuitIdNum": 1226,
"description": "9287-customer:vpn-2001226-(R1-Loopback0)",
"interfaceId": "1040",
"ipv4": {
"aclEgress": "rot-out",
"addr": "55.44.53.191/31",
"bgpNeighbor": "33.567.53.190"
},
"loadInterval": 30,
"remoteRouter": "R1-Loopback0",
"shortName": "rot",
"tunnel": {
"destination": "94.252.78.14",
"source": "66.52.5.4"
}
}
{
"circuitIdNum": 1227,
"description": "9287-customer:vpn-2001227-(R2-Loopback0)",
"interfaceId": "1041",
"ipv4": {
"aclEgress": "rot-out",
"addr": "23.77.175.253/31",
"bgpNeighbor": "21.44.175.252"
},
"loadInterval": 30,
"remoteRouter": "R2-Loopback0",
"shortName": "rot",
"tunnel": {
"destination": "22.22.18.15",
"source": "1.5.55.5"
}
}
Этот вид работает, но предоставляет только пункт назначения и источник.
cat testerr.json | jq .'tunnel | select(.source | contains ("1.5.55."))'
{
"destination": "22.22.18.15",
"source": "1.5.55.5"
}
Вместо того, чтобы отвечать только на туннельный раздел, я хочу, чтобы он возвращал полный массив.
{
"circuitIdNum": 1227,
"description": "9287-customer:vpn-2001227-(R2-Loopback0)",
"interfaceId": "1041",
"ipv4": {
"aclEgress": "rot-out",
"addr": "23.77.175.253/31",
"bgpNeighbor": "21.44.175.252"
},
"loadInterval": 30,
"remoteRouter": "R2-Loopback0",
"shortName": "rot",
"tunnel": {
"destination": "22.22.18.15",
"source": "1.5.55.5"
}
}
Мои попытки повсюду. Я не уверен, как назвать верхний уровень и искать элементы на нескольких уровнях. Спасибо