Dada sua entrada específica, onde parece que features
e engines
têm sempre no máximo um elemento, você deve ser capaz de fazer:
jq -r '.vehicle[] | select(.features[0].engine[0].electric != "yes").type'
Ou:
jq -r '.vehicle[] | select(.features[0].engine[0] | has("electric") | not).type'
para o type
desses vehicle
s cujo primeiro engine
do primeiro features
tem not
obteve uma electric
.
Ou se, como eu, você conhece perl
ou outra linguagem de programação e prefere não aprender outra (e muito específica) como jq
s:
perl -MJSON -l -0777 -ne '
$j = from_json($_);
for (@{$j->{vehicle}}) {
print $_->{type} unless $_->{features}[0]->{engine}[0]->{electric} eq "yes"
}' < file.js
(ou unless defined($_->{features}[0]->{engine}[0]->{electric})
).