ich Json-Datei, die in simmilar Weise aufgebaut ist:jq - neues Feld hinzufügen, mit ganzer Datei zu aktualisieren
[
{
"_id":"1234",
"org":"org1",
"int":
{"url":"http://url.com.uk:1234"}},
{
"_id":"4321",
"org":"org2",
"int":
{"url":"http://url.com.us:4321"}},
...
]
nun im „Springen“ von einem Eintrag zum anderen und überprüft, ob unter URL ordnungsgemäß funktioniert Anwendung. Nach der Überprüfung möchte ich das Feld "status" hinzufügen/aktualisieren. Aber ich kann nicht ganze Datei aktualisieren, im gerade bekommen:
$ jq --arg mod "GOOD" '.[0].int + {stat: $mod}' tmp.json
{
"url": "http://url.com.uk:1234",
"stat": "GOOD"
}
Wie kann ich mit jq Befehl erhalten neue, aktualisierte ganze Datei, nicht nur nur ein Teil davon?
Dang, das wäre eine großartige Ergänzung zu [Dokumentation] (https://stackoverflow.com/documentation) gewesen. – ghoti
Vielen Dank, es funktioniert für mich, aber es sieht eher wie Workaround als richtige Lösung aus. In bash sollte es einfacher sein als in Programmiersprachen (ich kann keine verwenden, es muss bash sein) und in diesem Fall ist es nicht. Mit json Bibliothek oder sogar in MongoDB JS ist es nur eine Zeile, um das benötigte Feld hinzuzufügen/zu aktualisieren. Dachte, es wird einen Schalter geben, mit dem ich erzwingen kann zu drücken, um alle Eingaben mit Updates wie "sed" auszugeben. Ich habe keine Ahnung, warum jq es schneidet. – user3069488