这是cisco命令SWEs-elmPCI-A-01#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
SWEx-elmPCI-A-02.lssh.com
Gig 2/0/1 137 R S I WS-C3750X Gig 1/0/1
SWEx-elmPCI-A-02.lssh.com
Gig 2/0/1 138 R S I WS-C3750X Gig 1/0/1
SWEa-elmPCI-02 Gig 1/0/4 169 T AIR-LAP12 Gig 0
SWEa-elmPCI-01 Gig 1/0/9 170 T AIR-LAP11 Gig 0
我怎样才能只获得包含SWEx-elmPCI-A-02.lssh.com
行及其详细信息Gig 2/0/1 137 R S I WS-C3750X Gig 1/0/1
注意:Gig 2/0/1 137 R S I WS-C3750X Gig 1/0/1
之前有空格
和Gig 2/0/1 138 R S I WS-C3750X Gig 1/0/1
以及S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
和D - Remote, C - CVTA, M - Two-port Mac Relay
我可以使用expect或者ciso regex.i我正在使用expect脚本在cisco上做一些任务所以我也可以在那里使用一些命令(比如include,exclude)或者在我的期望代码中。我只需要搜索SWEx及其相应的条目,如Gig 1/0/4,以便我可以放 Gig和1/0/4在某个变量中,并将其用于每个SWEx ..行
答案 0 :(得分:1)
以下内容应该有效:
/^(SWEx-elmPCI-A-02\.lssh\.com)\s+(.*?)\s{2,}(\d+)\s+(.*?)\s{2,}([^\s]+)\s+(.*?)$/gsm
将创建6个组:
MATCH 1
SWEx-elmPCI-A-02.lssh.com
Gig 2/0/1
137
R S I
WS-C3750X
Gig 1/0/1
MATCH 2
SWEx-elmPCI-A-02.lssh.com
Gig 2/0/1
138
R S I
WS-C3750X
Gig 1/0/1