yq parser
From thelinuxwiki
file name devices_test.yml contents:
webserver: hosts: foo: ipaddr: 192.168.1.1 desc: "foo" bar: ipaddr: 10.0.0.1 desc: "bar"
$ yq '.webserver.hosts[] | select(.ipaddr == "192.168.1.1")' devices_test.yml
{ "ipaddr": "192.168.1.1" }
pass an arg
$ yq --arg IPADDR "$ipaddr" '.webserver.hosts[] | select(.ipaddr == "192.168.1.1")' devices_test.yml