这是show version
Cisco APIC 中的输出。
正如您所看到的,它有奇怪的输出,其中控制器的主机名AB_CDE_FGH_IJ_ACI_APC-0001
被分成两行。
其他主机名也是如此。
show version
Cisco APIC 中的实际输出
AB_CDE_FGH_IJ_ACI_APC_0001# show version
Role Pod Node Name Version
---------- ---------- ---------- ------------------------ --------------------
controller 1 1 AB_CDE_FGH_IJ_ACI_ 3.2(4e)
APC-0001
controller 2 2 AB_CDE_FGH_IJ_ACI_ 3.2(4e)
APC-0002
controller 3 3 AB_CDE_FGH_IJ_ACI_ 3.2(4e)
APC-0003
spine 1 111 AB_CDE_FGH_IJ_ACI_SPN_01 n9000-13.2(4e)
11
spine 1 112 AB_CDE_FGH_IJ_ACI_SPN_01 n9000-13.2(4e)
12
spine 1 113 AB_CDE_FGH_IJ_ACI_SPN_01 n9000-13.2(4e)
13
leaf 1 1101 AB_CDE_FGH_IJ_ACI_LEF_11 n9000-13.2(4e)
01
leaf 1 1102 AB_CDE_FGH_IJ_ACI_LEF_11 n9000-13.2(4e)
02
leaf 1 1103 AB_CDE_FGH_IJ_ACI_LEF_11 n9000-13.2(4e)
03
我不确定是否可以在 Cisco ACI 本身中修复此问题,但我想可能可以通过sed
将awk
Cisco APICshow version
输出保存到show_version.txt
文件然后在 Linux 机器上运行脚本来修复此问题。
不幸的是,我不太擅长sed
编写awk
脚本。
有没有办法产生这样的输出?
[user@Linux ~]$ sed_or_awk_script_here show_version.txt
AB_CDE_FGH_IJ_ACI_APC_0001# show version
Role Pod Node Name Version
---------- ---------- ---------- ------------------------ --------------------
controller 1 1 AB_CDE_FGH_IJ_ACI_APC_0001 3.2(4e)
controller 2 2 AB_CDE_FGH_IJ_ACI_APC_0002 3.2(4e)
controller 3 3 AB_CDE_FGH_IJ_ACI_APC_0003 3.2(4e)
spine 1 111 AB_CDE_FGH_IJ_ACI_SPN_0111 n9000-13.2(4e)
spine 1 112 AB_CDE_FGH_IJ_ACI_SPN_0112 n9000-13.2(4e)
spine 1 113 AB_CDE_FGH_IJ_ACI_SPN_0113 n9000-13.2(4e)
leaf 1 1101 AB_CDE_FGH_IJ_ACI_LEF_1101 n9000-13.2(4e)
leaf 1 1102 AB_CDE_FGH_IJ_ACI_LEF_1102 n9000-13.2(4e)
leaf 1 1103 AB_CDE_FGH_IJ_ACI_LEF_1103 n9000-13.2(4e)
[user@Linux ~]$
答案1
使用awk
并假设第一行show version
是空行(使其成为三个标题行):
awk '
NR<4{ print; next } # print 3 header lines
NF>1{ # if number of fields > 1
sub($4, $4 "%s" ) # append `%s` to 4th field
fmtstr=$0 # save modified line in `fmtstr`
next # continue with next line
}
{ printf fmtstr "\n", $1 } # print `fmtstr` with first field as argument
' show_version.txt
输出:
Role Pod Node Name Version
---------- ---------- ---------- ------------------------ --------------------
controller 1 1 AB_CDE_FGH_IJ_ACI_APC-0001 3.2(4e)
controller 2 2 AB_CDE_FGH_IJ_ACI_APC-0002 3.2(4e)
controller 3 3 AB_CDE_FGH_IJ_ACI_APC-0003 3.2(4e)
spine 1 111 AB_CDE_FGH_IJ_ACI_SPN_0111 n9000-13.2(4e)
spine 1 112 AB_CDE_FGH_IJ_ACI_SPN_0112 n9000-13.2(4e)
spine 1 113 AB_CDE_FGH_IJ_ACI_SPN_0113 n9000-13.2(4e)
leaf 1 1101 AB_CDE_FGH_IJ_ACI_LEF_1101 n9000-13.2(4e)
leaf 1 1102 AB_CDE_FGH_IJ_ACI_LEF_1102 n9000-13.2(4e)
leaf 1 1103 AB_CDE_FGH_IJ_ACI_LEF_1103 n9000-13.2(4e)