下面的示例将使用从tutorial.html#slide3获取的配置
! filename:exampleswitch.conf
!
hostname ExampleSwitch
!
interface GigabitEthernet 1/1
switchport mode trunk
shutdown
!
interface GigabitEthernet 1/2
switchport mode access
switchport access vlan 20
switchport nonegotiate
no cdp enable
!
interface GigabitEthernet 1/3
no switchport
ip address 192.0.2.1 255.255.255.0这是来自tutorial.html#slide7的代码
from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse('exampleswitch.conf', syntax='ios')
for intf_obj in parse.find_objects_w_child('^interface', '^\s+shutdown'):
print("Shutdown: " + intf_obj.text)输出
$ python script.py
Shutdown: interface GigabitEthernet 1/1
$ 代码运行得很好。但是,不只是显示Shutdown: interface GigabitEthernet 1/1,是否可以在输出中显示整个interface GigabitEthernet 1/1块,即:
interface GigabitEthernet 1/1
switchport mode trunk
shutdown发布于 2021-01-08 09:54:47
我想你要找的是find_blocks。
find_blocks(linespec,exactmatch=False,ignore_ws=False)。找到所有的兄弟姐妹匹配线,然后找到这些兄弟姐妹的所有父母。返回按行号排序的配置行列表,最低优先
看看Ciscoconfparse文档,其中包括一个示例。
所以我想它看起来会是这样的:
from ciscoconfparse import CiscoConfParse
parse = CiscoConfParse('exampleswitch.conf', syntax='ios')
for intf_obj in parse.find_blocks(r'^\sshutdown'):
print(intf_obj)https://stackoverflow.com/questions/65599519
复制相似问题