Мне нужно извлечь 'xe-1/2/0' из следующего вывода UPD.result:
interface xe-1/2/0.0;
interface ge-1/2/1.0;
interface lo0.0 {
(это вывод команды 'show configuration protocol ospf | match int') изодна ячейка в списке.)
Я использую библиотеку netmiko для подключения к сетевым устройствам и нахожу некоторые интерфейсы, которые участвуют в протоколе OSPF, затем я хочу проверить количество ошибок на этих интерфейсах.
import getpass
import sys
import time
import textfsm
import os
from tabulate import tabulate
import re
from netmiko import ConnectHandler
USER = raw_input("Login:")
PASSWORD = getpass.getpass()
FILENAME = raw_input("Name of file with results:")
GETPATH= os.getcwd()
GETPATH2 = (GETPATH+'/IP-ADD.txt')
GETPATH3 = (GETPATH+'/template-desc.template')
BOXES_IP = [line.strip() for line in open(GETPATH2, 'r')]
print(BOXES_IP)
for IP in BOXES_IP:
print('CONNECTION TO DEVICE {}'.format(IP))
try:
DEVICE_PARAMS = {'device_type': 'juniper_junos',
'ip': IP,
'username':USER,
'password':PASSWORD,
'verbose': True}
with ConnectHandler(**DEVICE_PARAMS) as sss:
sss.enable()
result = sss.send_command('show configuration protocols ospf| match int')
hostname = sss.send_command('show configuration system host-name')
print(result)
except:
print('CONNECTION TO DEVICE FAILS {}'.format(IP))
continue
f = open(FILENAME+'.txt', 'a')
for row in hostname:
f.write(row)
for row in result:
f.write(row)
f.close()
regex = re.compile(r'^(xe.[0-9].[0-9].[0-9])')
results_list = []
b = open(FILENAME+'.txt', 'r')
print b
for line in b:
match = regex.search(line)
if not match: continue
results_list.append(match.group())
print results_list
Мне нужно проанализировать выходные данные команды 'show configuration protocols ospf| match int'
и найти интерфейсы xe
(например, xe-0/0/1
), а затем ввести команду 'show interface xe-*** extensive'
и распечатать результаты в файле.
Как я могу это сделать?
Я пытаюсь проанализировать выходной файл с помощью компиляции, но он не работает.
ОБНОВЛЕНИЕ.
print(result)
вывод:
interface lo0.0 {
interface xe-1/3/1.0;
interface ge-1/2/0.0;
interface xe-1/3/0.0;
Результат разделения
for l in result.split("\n"):
l = l.split(" ")
print l
[u'']
[u'', u'', u'', u'', u'interface', u'lo0.0', u'{']
[u'', u'', u'', u'', u'interface', u'xe-1/3/1.0;']
[u'', u'', u'', u'', u'interface', u'ge-1/2/0.0;']
[u'', u'', u'', u'', u'interface', u'xe-1/3/0.0;']
[u'']