이는 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 자체에서 이 문제를 해결할 수 있는지는 확실하지 않지만 Cisco APIC 출력을 파일에 sed
저장한 다음 Linux 시스템에서 스크립트를 실행하면 문제를 해결할 수 있을 것이라고 생각했습니다 .awk
show version
show_version.txt
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)