伙计们,检查是否有人有更好的建议,以获得一个序列号从思科设备使用正则表达式。
“show inventory”文件看起来如下所示:
switch-01#sh inventory
NAME c93xx Stack, DESCR c93xx Stack
PID C9300-48P , VID V02 , SN **ABC1979G123**
NAME Switch 1, DESCR C9300-48P
PID C9300-48P , VID V02 , SN ABC1979G123
NAME Switch 1 - Power Supply A, DESCR Switch 1 - Power Supply A
PID PWR-C1-715WAC-P , VID V01 , SN POW1978ST01
NAME Switch 1 - Power Supply B, DESCR Switch 1 - Power Supply B
PID PWR-C1-715WAC-P , VID V01 , SN POW1978ST02
NAME Switch 1 FRU Uplink Module 1, DESCR 4x1G Uplink Module
PID C9300-NM-4G , VID V01 , SN FUM2023CIOC
NAME Gi111, DESCR 1000BaseSX SFP
PID GLC-SX-MMD , VID V01 , SN GBIC2020C01
NAME Gi112, DESCR 1000BaseSX SFP
PID GLC-SX-MMD , VID V01 , SN GBIC2020C02
switch-01#
字符串
对于任何Cisco设备,突出显示的始终是序列号。(即ABC 1979 G123)
我的正则表达式如下:r'PID:\S+\s+,VID:\s+\S+\s+,SN:(\S+)'
这工作得很好,但我正在寻找,看看是否有一些简单的正则表达式的建议。
谢谢!!
我已经提到了我所尝试的,这是有效的。再一次,只是看一些简单方法的建议。
2条答案
按热度按时间pkln4tw61#
SN似乎总是行中的最后一个元素。如果是这样的话,也许会更简单:
字符串
0tdrvxhp2#
另一个不带组的解决方案(Regex101):
字符串
这将匹配
SN
之后的所有内容,直到行尾。