Quantcast
Channel: Active questions tagged jq - Stack Overflow
Viewing all articles
Browse latest Browse all 657

JQ select NOT IN does not return correct data

$
0
0

DATA:

[  {"NetworkInterfaces": [      {"NetworkInterfaceId": "eni-1"      },      {"NetworkInterfaceId": "eni-2"      }    ],"InstanceId": "i-1"  },  {"NetworkInterfaces": [      {"NetworkInterfaceId": "eni-3"      },      {"NetworkInterfaceId": "eni-4"      }    ],"InstanceId": "i-2"  },  {"NetworkInterfaces": [      {"NetworkInterfaceId": "eni-5"      },      {"NetworkInterfaceId": "eni-6"      }    ],"InstanceId": "i-3"  }]

JQ QUERIES :

WORKS :

.[] | select(.["NetworkInterfaces"] | .[] | select(.["NetworkInterfaceId"] | IN("eni-1", "eni-3"))) | .["InstanceId"] // empty => return "i-1" "i-2" which is correct

ISSUE 1 : (NOT SOLVE YET)

.[] | select(.["NetworkInterfaces"] | .[] | select(.["NetworkInterfaceId"] | IN("eni-1", "eni-3") | not)) | .["InstanceId"] // empty => return "i-1" "i-2" "i-3" "i-3" which is NOT what I want. I would like it returns only "i-3". How do I fix this query?

ISSUE 2 : (SOLVED)

.[] | select(.["NetworkInterfaces"] | .[] | select(.["NetworkInterfaceId"] | IN("eni-1", "eni-2"))) | .["InstanceId"] // empty => return "i-1" "i-1". I would like it returns only one "i-1". How do I fix this query (hope not to use shell command sort -u -f?

look like I figured out this issue by using fist() .[] | first(select(.["NetworkInterfaces"] | .[] | select(.["NetworkInterfaceId"] | IN("eni-1", "eni-2")))) | .["InstanceId"] // empty

Thanks!!!!


Viewing all articles
Browse latest Browse all 657

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>