Wie kann ich in der Linux-Befehlszeilenschnittstelle eingeklammerten Text in einem lesbaren Format auflisten? Apache Geode-Knotennamen und -Informationen

Wie kann ich in der Linux-Befehlszeilenschnittstelle eingeklammerten Text in einem lesbaren Format auflisten? Apache Geode-Knotennamen und -Informationen

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

sedEin 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

verwandte Informationen