我正在与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