Command-Line

如何在 Linux CLI 中以可讀格式列出括號內的文本?Apache Geode 節點名稱和資訊

  • April 16, 2020

我正在使用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

DevOps 的一位同事向我展示瞭如何使用sed+ regEx +來做到這一點json.tool

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

引用自:https://unix.stackexchange.com/questions/580372