Como recuperar certos campos da saída de “detalhe dos vizinhos do CDP”?

2

Eu tenho um arquivo de texto que contém CDP neighbors detail saída de terminal que se parece com isso:

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:~$ 

Eu quero filtrar os seguintes campos de cada dispositivo: ID do dispositivo, endereço IP, interface, porta ID (porta de saída)

Eu tentei (sem sucesso) pesquisar toda vez que a palavra "ID do dispositivo" aparece e salve até que "ID da porta" apareça para obter um arquivo como este:

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

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

Você poderia me ajudar com isso?

ou

Você conhece uma maneira melhor de capturar essa informação?

    
por Cesar Alejandro Villegas Yepez 17.02.2017 / 16:30

3 respostas

4

Isso imprimirá qualquer linha que tenha correspondência para os campos que você está procurando:

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

Você pode realizar o mesmo com grep , sed e outras ferramentas semelhantes.

Você pode até ficar um pouco mais chique:

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

Você tem a opção de usar o egrep ao invés do awk?

egrep "Device|IP\ address|Interface|Port\ ID" input-file.txt
    
por 17.02.2017 / 16:51
0

Se não for um arquivo de log de muitos gigabytes,

 perl -0ne 'for( /Device ID.*?Port ID.*?\n/sg ){ print "-"x 20,"\n$_\n"}' file
    
por 17.02.2017 / 16:46