jq
ist sozusagen das sed
für JSON
.
Generelle Syntax / Felder anzeigen
Wenn das Feld ausgelesen werden soll def
[{
"id": 123,
"name": "John",
"aux": [{
"abc": "random",
"def": "I want this"
}],
"blah": 23.11
}]
jq '.[].aux[].def' file.json
Dabei sind Arrays []
und Attribute davon .aux
bzw. .def
Elemente in Array filtern
{
"prefixes": [
{
"ip_prefix": "35.180.0.0/16",
"region": "eu-west-3",
"service": "AMAZON",
"network_border_group": "eu-west-3"
},
{
"ip_prefix": "52.94.76.0/22",
"region": "us-west-2",
"service": "AMAZON",
"network_border_group": "us-west-2"
}
]
}
Ich kann also nach allen Feldern in denen “region” “eu-central-1” ist, suchen
in dem ich den select
Command benuzte
jq '.prefixes[] | select(.region == "eu-central-1")' f
Multiple Filter
Filter (wie select
) können mittelns |
gechained werden.
jq '.prefixes[] | select(.region == "eu-central-1") | select(.ip_prefix | startswith("3."))' f`
Hier verbinde ich 2 Suchkritierien (json selbes wie oben)