Ich versuche, jq zu verwenden, um mehrere Elemente von einem JSON-Objekt zurückzugeben. Die Daten werden von einem AWS cli Nachschlag kommen, ist dies nur ein winziger Abschnitt der Ausgabe:mit jq, um mehrere Elemente zurückzugeben?
{
"ReservedInstancesOfferings": [{
"OfferingClass": "convertible",
"OfferingType": "No Upfront",
"AvailabilityZone": "ap-southeast-2a",
"InstanceTenancy": "default",
"PricingDetails": [],
"ProductDescription": "Linux/UNIX",
"UsagePrice": 0.0,
"RecurringCharges": [{
"Amount": 0.167,
"Frequency": "Hourly"
}],
"Marketplace": false,
"CurrencyCode": "USD",
"FixedPrice": 0.0,
"Duration": 94608000,
"Scope": "Availability Zone",
"ReservedInstancesOfferingId": "1fc8c02b-bcc0-42b8-82ef-47c6f6d1c1b5",
"InstanceType": "c4.xlarge"
},
{
"OfferingClass": "convertible",
"OfferingType": "No Upfront",
"AvailabilityZone": "ap-southeast-2a",
"InstanceTenancy": "dedicated",
"PricingDetails": [],
"ProductDescription": "Red Hat Enterprise Linux",
"UsagePrice": 0.0,
"RecurringCharges": [{
"Amount": 0.243,
"Frequency": "Hourly"
}],
"Marketplace": false,
"CurrencyCode": "USD",
"FixedPrice": 0.0,
"Duration": 94608000,
"Scope": "Availability Zone",
"ReservedInstancesOfferingId": "24aaceee-f54e-4882-aba3-ce710a5036c9",
"InstanceType": "c4.xlarge"
}
]
}
Ich versuche, um die Felder zu extrahieren:
.ReservedInstancesOfferings[].ProductDescription
.ReservedInstancesOfferings[].InstanceType
.ReservedInstancesOfferings[].RecurringCharges[].Amount
würde ich mag ausgeben, um so zu erscheinen:
Wie Sie oben sehen können, verstehe ich, wie man alle Elemente indi extrahiert Ich kann nicht herausfinden, wie man sie alle zusammenbringt, um die gewünschte Ausgabe zu erreichen. Ich habe versucht, die Abfragen mit einem Komma zu trennen, aber das liefert nicht die gewünschte Ausgabe.
Jede Hilfe würde sehr geschätzt werden.
Vielen Dank!
EDIT:
Oh oh, ich habe es! Volle Antwort ist unten. Junge oh Junge jq ist mächtig!
Hoffentlich hilft dies jemand :)
Sie eigene Antwort hinzufügen sollten , anstatt nur die Frage zu bearbeiten. –
Ja, ich bin ein wenig aufgeregt :) Die Antwort ist unten. –