如何在 Linux CLI 中以可读的格式列出括号内的文本? Apache Geode 节点名称和信息

如何在 Linux CLI 中以可读的格式列出括号内的文本? Apache Geode 节点名称和信息

我正在与Apache Geode 节点,所有工作都是通过 Linux CLI 完成的。通常,当我编辑配置文件(使用 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}

...这只是节点。通常有好几个,而且文本都乱七八糟地拼凑在一起,难以阅读。如果我可以像这样查看和编辑文件,那么这会让这变得更容易:

"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
}

我知道这是可能的,而且我以前见过它,但我不知道它是如何做到的。

更新:我必须指出,这是一个 SLES 设备(通常无法访问互联网),因此我无法安装任何应用程序, 例如jq

答案1

我的一位 DevOps 同事向我展示了如何使用sed+ regEx +来做到这一点json.tool

`echo sed -nre "/clusterMembership/ s/^[^']+'([^']+)','([^']+)'.*/\2/p" /path/to/file/here/node.file.config | python -m json.tool

相关内容