Ich möchte aus einer JSON-Datei wie im folgenden Beispiel jeweils die deviceID und die Version von "wagenkorb" ausgeben lassen und wenn keine wagenkorb-Version vorhanden ist, dann "Keine" als Text. Wie müsste der jq-Befehl dafür lauten? Danke.
{ "deviceID": "1", "getState": { "packageVersions": [ { "name": "database-service", "version": "1.5.8" } ] } }, { "deviceID": "2", "getState": { "packageVersions": [ { "name": "wagenkorb", "version": "1.15.3~5.gbp55a2dd" }, { "name": "database-service", "version": "1.5.8" } ] } }
Ausgabe sollte also z.B. so aussehen:
1 Keine 2 1.15.3~5.gbp55a2dd
EDIT: Sorry, hat sich erledigt, habe Lösung gefunden:
jq -r '"\(.deviceID) \((.getState.packageVersions[] | select(.name == "wagenkorb") | .version) // "Keine")"' input.json