【发布时间】:2021-03-23 09:37:39
【问题描述】:
命令ads2 cls create 产生以下输出:
cluster established ...
nodes {
node {
name = "fdt-c-agx-0002";
address = "http://172.16.11.89:9011/";
state = "3";
}
node {
name = "FDT-C-VM-0094";
address = "http://172.16.11.49:9011/";
state = "3";
}
}
我要做的是找到每个节点的name 及其状态,将每个节点分配给一个变量并打印它们,以便输出如下所示:
NODE-1 name有一个状态state #这符合第一个节点
NODE-2 name有一个状态state #这符合第二个节点
所以我从 status-nod1="$(ads2 cls create | grep state | cut -d '"' -f 2)" 和 name-nod1="$(ads2 cls create | grep name | cut -d '"' -f 2)" 之类的 grep 开始。
这可行,但是会找到与 state 和“名称”的所有匹配项并因此返回
3
3
fdt-c-agx-0002
FDT-C-VM-0094
那么如何按写入顺序输出匹配,以便每个节点都匹配其状态
【问题讨论】:
标签: bash shell command-line grep kernel