Text-Processing

如何從“CDP 鄰居詳細資訊”的輸出中檢索某些欄位?

  • February 17, 2017

我有一個包含CDP neighbors detail終端輸出的文本文件,如下所示:

show cdp neighbors detail
-------------------------
Device ID: BIOTERIO
Entry address(es): 
 IP address: 000.000.00.000
Platform: cisco WS-C2950G-24-EI,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/6,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 154 sec

Version :
Cisco Internetwork Operating System Software 
IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(14)EA1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2003 by cisco Systems, Inc.
Compiled Tue 22-Jul-03 12:13 by antonino

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000000B5FCA1E00FF0000
VTP Management Domain: ''
Duplex: full
Management address(es): 

-------------------------
--More--         Device ID: N7K-LAN(JAF1651ANDL)
Entry address(es): 
 IP address: 000.000.0.000
Platform: N7K-C7010,  Capabilities: Router Switch IGMP 
Interface: GigabitEthernet1/0/1,  Port ID (outgoing port): Ethernet7/23
Holdtime : 166 sec

Version :
Cisco Nexus Operating System (NX-OS) Software, Version 7.2(2)D1(2)

advertisement version: 2
VTP Management Domain: 'NULL'
Native VLAN: 1
Duplex: full
Management address(es): 

-------------------------
Device ID: LAB_PESADO
Entry address(es): 
 IP address: 000.000.000.000
Platform: cisco WS-C2960-48TC-S,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/11,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 149 sec
--More--         
Version :
Cisco IOS Software, C2960 Software (C2960-LANLITEK9-M), Version 12.2(50)SE5, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Tue 28-Sep-10 13:44 by prod_rel_team

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF00000000000018339DBD9200FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

-------------------------
Device ID: Arquitectura_Salones
Entry address(es): 
 IP address: 000.000.000.00
Platform: cisco WS-C2960S-48TS-S,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/9,  Port ID (outgoing port): GigabitEthernet0/49
--More--         Holdtime : 129 sec

Version :
Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 12.2(55)SE2, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2011 by Cisco Systems, Inc.
Compiled Tue 11-Jan-11 02:23 by prod_rel_team

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000E8BA7096A280FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.00

-------------------------
Device ID: CIVIL_253
Entry address(es): 
 IP address: 000.000.000.000
Platform: cisco WS-C2960S-48TS-L,  Capabilities: Switch IGMP 
--More--         Interface: GigabitEthernet1/0/4,  Port ID (outgoing port): GigabitEthernet1/0/52
Holdtime : 164 sec

Version :
Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 12.2(55)SE7, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems, Inc.
Compiled Mon 28-Jan-13 10:28 by prod_rel_team

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000F41FC2105480FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

-------------------------
Device ID: Arquitectura
Entry address(es): 
 IP address: 148.228.134.253
--More--         Platform: cisco WS-C2960-48TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/3,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 122 sec

Version :
Cisco IOS Software, C2960 Software (C2960-LANBASE-M), Version 12.2(35)SE5, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Thu 19-Jul-07 20:06 by nachen

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF0000000000000023AC7A0080FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

-------------------------
Device ID: ING_CIVIL_DIR
Entry address(es): 
 IP address: 000.000.0.000
--More--         Platform: cisco WS-C3524-XL,  Capabilities: Trans-Bridge Switch 
Interface: GigabitEthernet1/0/10,  Port ID (outgoing port): GigabitEthernet0/2
Holdtime : 156 sec

Version :
Cisco Internetwork Operating System Software 
IOS (tm) C3500XL Software (C3500XL-C3H2S-M), Version 12.0(5.3)WC(1), MAINTENANCE INTERIM SOFTWARE
Copyright (c) 1986-2001 by cisco Systems, Inc.
Compiled Mon 30-Apr-01 07:51 by devgoyal

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010121FF0000000000000006D779C000FF0001
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 

-------------------------
Device ID: ING_CIVIL
Entry address(es): 
 IP address: 000.000.000.000
--More--         Platform: cisco WS-C2960-24TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/7,  Port ID (outgoing port): GigabitEthernet0/2
Holdtime : 170 sec

Version :
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(44)SE6, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Mon 09-Mar-09 18:10 by gereddy

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF0000000000003CDF1ED25100FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

-------------------------
Device ID: Ingenieria_Posgrado
Entry address(es): 
 IP address: 148.228.137.253
--More--         Platform: cisco WS-C2960-24TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/8,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 141 sec

Version :
Cisco IOS Software, C2960 Software (C2960-LANBASE-M), Version 12.2(25)SEE3, RELEASE SOFTWARE (fc2)
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Thu 22-Feb-07 13:57 by myl

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000001CF9AA5200FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

-------------------------
Device ID: Biblio_Barragan
Entry address(es): 
 IP address: 000.000.000.00
--More--         Platform: cisco WS-C2960-24PC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/2,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 172 sec

Version :
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(50)SE5, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Tue 28-Sep-10 13:44 by prod_rel_team

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF0000000000001CAA07C15900FF0000
VTP Management Domain: 'NULL'
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.00

-------------------------
Device ID: Electronica_Edif_3
Entry address(es): 
--More--           IP address: 000.000.000.000
Platform: cisco WS-C2960-48TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/5,  Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 145 sec

Version :
Cisco IOS Software, C2960 Software (C2960-LANBASE-M), Version 12.2(35)SE5, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2007 by Cisco Systems, Inc.
Compiled Thu 19-Jul-07 20:06 by nachen

advertisement version: 2
Protocol Hello:  OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000002305468B00FF0000
VTP Management Domain: ''
Native VLAN: 1
Duplex: full
Management address(es): 
 IP address: 000.000.000.000

Barragan_3750>exit
Connection closed by foreign host.
]0;cesar@cesar-HP-Pavilion-15-NoteBook-PC: ~cesar@cesar-HP-Pavilion-15-NoteBook-PC:~$ 

我想過濾每個設備的以下欄位:設備ID、IP地址、介面、埠ID(傳出埠)

每次出現“設備 ID”一詞時,我都嘗試(但沒有成功)搜尋並保存,直到出現“埠 ID”以獲取如下文件:

Device ID: BIOTERIO
Entry address(es): 
 IP address: 000.000.00.000
Platform: cisco WS-C2950G-24-EI,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/6,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------
Device ID: N7K-LAN(JAF1651ANDL)
Entry address(es): 
 IP address: 000.000.0.000
Platform: N7K-C7010,  Capabilities: Router Switch IGMP 
Interface: GigabitEthernet1/0/1,  Port ID (outgoing port): Ethernet7/23

-------------------------
Device ID: LAB_PESADO
Entry address(es): 
 IP address: 000.000.000.000
Platform: cisco WS-C2960-48TC-S,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/11,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------
Device ID: Arquitectura_Salones
Entry address(es): 
 IP address: 000.000.000.00
Platform: cisco WS-C2960S-48TS-S,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/9,  Port ID (outgoing port): GigabitEthernet0/49

-------------------------
Device ID: CIVIL_253
Entry address(es): 
 IP address: 000.000.000.000
Platform: cisco WS-C2960S-48TS-L,  Capabilities: Switch IGMP 
--More--         Interface: GigabitEthernet1/0/4,  Port ID (outgoing port): GigabitEthernet1/0/52

-------------------------
Device ID: Arquitectura
Entry address(es): 
 IP address: 000.000.000.000
--More--         Platform: cisco WS-C2960-48TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/3,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------
Device ID: ING_CIVIL_DIR
Entry address(es): 
 IP address: 000.000.0.000
--More--         Platform: cisco WS-C3524-XL,  Capabilities: Trans-Bridge Switch 
Interface: GigabitEthernet1/0/10,  Port ID (outgoing port): GigabitEthernet0/2

-------------------------
Device ID: ING_CIVIL
Entry address(es): 
 IP address: 000.000.000.000
--More--         Platform: cisco WS-C2960-24TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/7,  Port ID (outgoing port): GigabitEthernet0/2

-------------------------
Device ID: Ingenieria_Posgrado
Entry address(es): 
 IP address: 000.000.000.000
--More--         Platform: cisco WS-C2960-24TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/8,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------
Device ID: Biblio_Barragan
Entry address(es): 
 IP address: 000.000.000.00
--More--         Platform: cisco WS-C2960-24PC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/2,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------
Device ID: Electronica_Edif_3
Entry address(es): 
--More--           IP address: 000.000.000.000
Platform: cisco WS-C2960-48TC-L,  Capabilities: Switch IGMP 
Interface: GigabitEthernet1/0/5,  Port ID (outgoing port): GigabitEthernet0/1

-------------------------

你能幫我解決這個問題嗎?

或者

您知道獲取該資訊的更好方法嗎?

這將列印與您要查找的欄位匹配的任何行:

awk '/Device ID|IP address|Interface|Port ID/ { print }' /path/to/input

grep您可以使用、sed和其他類似工具完成相同的操作。

你甚至可以更花哨一點:

grep -Eo '(Device ID|IP address|Interface|Port ID): [^ ]+' /path/to/input

您可以選擇使用 egrep 代替 awk 嗎?

egrep "Device|IP\ address|Interface|Port\ ID" input-file.txt

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