我正在尝试搜索并匹配保存在 .txt 文件中的 cisco 路由器配置上的特定字符串。这是部分 .txt 文件的示例:
ip sla 101
udp-jitter 10.0.0.1 48092
request-data-size 64
tos 100
tag hostname
frequency 300
ip sla schedule 101 life forever start-time now
ip sla 102
udp-jitter 10.0.26.36 48092
request-data-size 64
tos 100
owner owner
tag hostname
frequency 300
ip sla schedule 102 life forever start-time now
ip sla 103
udp-jitter 10.0.114.1 48092
tos 100
vrf mskjhhj
owner owner2
tag hostname
ip sla schedule 103 life forever start-time now
因此,想象一下 500 个 .txt 文件,并且在配置上都有不同的变化,但都必须具有“IP SLA 101、102、103 等......”
我要抓取和保存的部分是每个“IP SLA”下的配置。例如,第一行是“ip sla 101”,整个配置如下:
ip sla 101
udp-jitter 10.0.0.1 48092
request-data-size 64
tos 100
tag xb02wepr01-004108
frequency 300
ip sla schedule 101 life forever start-time now
我希望能够搜索整个文件并获取每个“ip sla”的信息请记住,某些文件具有不同的配置,唯一相同的是当其中一个 ip sla 是完成它之后是另一个 ip sla,直到没有更多。我不知道我是否解释自己,因为它是思科配置。
这是我的代码:
f =open('config.txt')
f =f.readlines()
f_out =open('save_result.txt', 'wb')
for i in f:
if 'ip sla <any number>:
ipsla<number>=[]
ipsla<number>.append(i)
ipslacurrent = i
elif i != <any number>:
ipsla<number>.append(i)
f_out.write(ipsla<anynumber>)
f_out.close()
我希望这一切都有意义,如果不是我道歉。如果有任何其他方式可以实现这一点,我将不胜感激。可能使用正则表达式,但我没有使用 rgex 的经验。谢谢
更新:
我基本上想要的是多变量。在脚本结束时,我希望脚本收集如下示例:
例子:
ip_sla_101 =['udp-jitter 10.0.0.1 48092', 'request-data-size 64','tos 100','tag hostname','frequency 300','ip sla schedule 101 life forever start-time now']
ip_sla_102 =['udp-jitter 10.0.26.36 48092', 'request-data-size 64','tos 100','owner owner', 'tag hostname','frequency 300','ip sla schedule 102 life forever start-time now']
ip_sla_103 =['udp-jitter 10.0.114.1 48092','tos 100','owner owner2', 'tag hostname', 'ip sla schedule 103 life forever start-time now']