我有一个类似的清单
set val [ list Fa2/0/1 Fa2/0/24 Gi1/0/13 Gi1/0/23 Gi1/1/1 Gi2/0/1 ]
现在我想把它放在一个循环中并在每个范围内执行一些命令
像
set number 0
set pattern 0
foreach n $val {
if {$pattern == 0} {
set current $n
regexp {(.*/)(\d+)} $n - pattern number
continue
}
regexp {(.*/)(\d+)} $n - match1 match2
if {$match1 == $pattern} {
#puts "someproc $current - match2"
}
}
我无法完成这项工作,输出应该类似于 ech 对或找到的奇异值
someproc Fa2/0/1 - 24
someproc Gi1/0/13 - 23
someproc Gi1/1/1 - 1 #for singular values
someproc Gi2/0/1 - 1
编辑:我有一个这样的数据列表:
Gi3/0/1 Fa2/0/1 Fa2/0/24 Gi1/0/13 Gi1/0/23 Gi1/1/1 Gi2/0/1 Te1/0/1
您可以在其中说每个数据可以是类型,或者Gi3/0/
这些数据可以代表cisco swicth 上的某些端口范围。现在,对于每种类型,我都需要为一个范围执行一些命令。再次获取上面的列表,我可以获得。Gi2/0/
Fa2/0/
somecommand Gi3/0/1 - 1 # there is only one `Gi3/0/` with number 1.
somecommand Fa2/0/1 - 24 # range of `Fa2/0/` is 1 to 24
相似地,
somecommand Gi1/0/13 - 23
somecommand Gi1/1/1 - 1
and so on