使用regex获取Cisco设备的序列号

hxzsmxv2  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(129)

伙计们,检查是否有人有更好的建议,以获得一个序列号从思科设备使用正则表达式。
“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+)'
这工作得很好,但我正在寻找,看看是否有一些简单的正则表达式的建议。
谢谢!!
我已经提到了我所尝试的,这是有效的。再一次,只是看一些简单方法的建议。

pkln4tw6

pkln4tw61#

SN似乎总是行中的最后一个元素。如果是这样的话,也许会更简单:

r'.*SN: (\S+)$'

字符串

0tdrvxhp

0tdrvxhp2#

另一个不带组的解决方案(Regex101):

(?<=SN ).*

字符串
这将匹配SN之后的所有内容,直到行尾。

相关问题