我正在使用Python和Pexpect从一些思科设备中收集一些信息,并且在提取棘手的小项目时,已经取得了很大的成功。但是,我担心我在这方面遇到了难题。有些交换机会堆叠在一起,我已经在脚本中识别出这一点,并使用单独的例程来解析数据。如果交换机被堆叠,则会看到以下内容(从sho ver输出中提取)
Top Assembly Part Number : 800-25858-06
Top Assembly Revision Number : A0
Version ID : V08
CLEI Code Number : COMDE10BRA
Hardware Board Revision Number : 0x01
Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
* 1 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
2 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
3 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
4 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
Switch 02
---------
Switch Uptime : 11 weeks, 2 days, 16 hours, 27 minutes
Base ethernet MAC Address : 00:26:52:96:2A:80
Motherboard assembly number : 73-9675-15
当我遇到这种情况时,我需要从4个表格中提取每个开关的编号和型号(可以忽略sw,但是可能有1到9个开关)。多行的问题让我感到困扰,我已经处理好了其余部分。有什么建议吗?
抱歉,我的正则表达式只是从最后一组“-”开始查找,然后我就不知道该怎么办了! -{10]\s-{10}(.+)Switch
型号会改变,开关的数量也会改变,我需要捕获此示例中的4行内容。
* 1 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
2 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
3 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
4 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
但每个交换机可能是不同的型号,数量在1到9之间。对于这个例子,我希望得到以下结果:
*,1,WS-C3750-48P
,2,WS-C3750-48P
,3,WS-C3750-48P
,4,WS-C3750-48P
(星号表示主节点)但是获取这些行将使我走上正确的轨道。