
Ich arbeite mitApache Geode-Knoten, die gesamte Arbeit wird über die Linux-CLI erledigt. Normalerweise sieht der Text so aus, wenn ich die Konfigurationsdateien bearbeite (mit VIM):
"nodes": {"long_UUID_here": {"node_uuid": "another_long_string_here", pair_uuid:" null,
"is_admin_node": false, "ip_address": "ip-or-fqnd.domain.com", "preferred_addresses": {},
"node_name": shortname.domain.com", "membership_state": null, "region": null}
...und das ist nureinsKnoten. Oft gibt es mehrere davon, und der Text ist einfach in einem großen, schwer lesbaren Durcheinander zusammengewürfelt. Das Ganze wäre viel einfacher, wenn ich die Datei wie folgt anzeigen und bearbeiten könnte:
"nodes": {
"long_UUID_here": {
"node_uuid": "another_long_string_here",
"pair_uuid:" null,
"is_admin_node": false,
"ip_address": "ip-or-fqnd.domain.com",
"preferred_addresses": {},
"node_name": shortname.domain.com",
"membership_state": null,
"region": null
}
Ich weiß, dass das möglich ist, und ich habe es schon einmal gesehen, aber ich weiß nicht, wie es geht.
Update: Ich muss darauf hinweisen, dass es sich hier um eine SLES Appliance handelt (oft ohne Internetzugang), alsoIch kann keine App installieren, wie zum Beispieljq
Antwort1
sed
Ein Kollege von mir aus dem DevOps-Bereich hat mir gezeigt, wie das mit + regEx + geht json.tool
:
`echo sed -nre "/clusterMembership/ s/^[^']+'([^']+)','([^']+)'.*/\2/p" /path/to/file/here/node.file.config | python -m json.tool