我需要解析以下CLI输出:
Status and Counters - General System Information
System Name : Switch-Name-2
System Contact :
System Location :
MAC Age Time (sec) : 300
Time Zone : 0
Daylight Time Rule : None
Software revision : WC.16.10.0009 Base MAC Addr : ******-******
ROM Version : WC.16.01.0008 Serial Number : **********
Up Time : 371 days Memory - Total : 339,329,536
CPU Util (%) : 9 Free : 217,292,368
IP Mgmt - Pkts Rx : 7,218,420 Packet - Total : 6600
Pkts Tx : 6,911,783 Buffers Free : 4281
Lowest : 4161
Missed : 0
字符串
我认为我已经做了一个很好的工作与以下TEXTFSM模板:
Value Uptime (\d+\s\S+)
Value CPU (\d+)
Value MemTotal (\S+)
Value MemFree (\S+)
Start
^${Uptime}
^\)\s+:\s${CPU}
^Memory\s+-\sTotal\s+:\s${MemTotal}
^\d+\s+Free\s+:\s+${MemFree} -> Record
型
但是它总是返回无输出:S
我对TEXTFSM还很陌生,但归根结底,它只是REGEX。
我希望输出是正常运行时间,CPU %,内存总量和内存空闲
2条答案
按热度按时间snz8szmq1#
尝试一个 * 捕获模式 *。
个字符
lstz6jyr2#
这个对我很有效
字符串
Up Time :
作为第一个值。顺便说一句:模板中的
^
表示行的开头,因此您不能使用^
搜索不在行开头的元素。您不能使用^${Uptime}
搜索值,因为值之前有文本Up Time :
。您不能使用^\)
,因为)
不在行的开头。您必须添加.*
才能捕获所有其他值)
个而且
-
在模板中似乎有特殊的含义,所以需要\-
用于测试的代码
型
测试结果:
型
编辑:
同样的代码直接在代码中加上数据和模板.
我使用
io.StringIO()
创建file-like
对象。型