Mit jq
ich versuchte, dieses json Dokument zu aktualisieren:Wie aktualisiert man einen Unterpunkt in einer JSON-Datei mit jq?
{
"git_defaults": {
"branch": "master",
"email": "[email protected]",
"user": "Jenkins"
},
"git_namespaces": [
{
"name": "NamespaceX",
"modules": [
"moduleA",
"moduleB",
"moduleC",
"moduleD"
]
},
{
"name": "NamespaceY",
"modules": [
"moduleE"
]
}
]
}
mit moduleF
-NamespaceY
hinzufügen. Ich muss die Datei wieder in die ursprüngliche Quelldatei schreiben.
Ich kam in der Nähe (aber keine Zigarre) mit:
jq '. | .git_namespaces[] | select(.name=="namespaceY").modules |= (.+ ["moduleF"])' config.json
und
jq '. | select(.git_namespaces[].name=="namespaceY").modules |= (.+ ["moduleF"])' config.json
diskutiert Ich nahm es ein kleines bisschen weiter: (.git_namespaces [] | auswählen (.name == "NamespaceY"). Module) | = (. + ["modulF"] | unique) um sicherzustellen, dass es nicht zu doppelten Einträgen kommt – MansM