Interface IP-Address OK? Method Status Protocol GigabitEthernet0/0/0 unassigned YES NVRAM up up Gi0/0/0.201 10.10.10.30 YES NVRAM up up GigabitEthernet0/1 unassigned YES NVRAM admin down down GigabitEthernet0/1.201 unassigned YES manual admin down down GigabitEthernet0/2/0 1.2.3.4 YES NVRAM up up GigabitEthernet0/2/0.203 10.10.10.1 YES NVRAM up up
这是路由器上的命令的一些输出。我希望能够匹配以Gi
或GigabitEthernet
开头并以.20(1-20)
结尾的字符串,例如.201
或.202
或.203
.220
。
因此它会匹配GigabitEthernet0/1.201
或Gi0/0/0.201
。
一旦匹配,我希望能够将完整的字符串放在变量中并在其他地方使用它。如果有多个匹配,我希望它们在多个变量中。
请编程帮助我。非常感谢您的帮助。提前谢谢。
答案 0 :(得分:-1)
set text {Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0/0 unassigned YES NVRAM up up
Gi0/0/0.201 10.10.10.30 YES NVRAM up up
GigabitEthernet0/1 unassigned YES NVRAM admin down down
GigabitEthernet0/1.201 unassigned YES manual admin down down
GigabitEthernet0/2/0 1.2.3.4 YES NVRAM up up
GigabitEthernet0/2/0.203 10.10.10.1 YES NVRAM up up }
set interfaces [regexp -all -inline {\mGi\S+\.2(?:0[1-9]|1[0-9]|20)\M} $text]
puts $interfaces
Gi0/0/0.201 GigabitEthernet0/1.201 GigabitEthernet0/2/0.203
请参阅https://tcl.tk/man/tcl8.6/TclCmd/re_syntax.htm和https://tcl.tk/man/tcl8.6/TclCmd/regexp.htm