我有这样如何检查tcl列表中的相邻值?
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/
类型或Gi2/0/
或Fa2/0/
这些reperesent每一个类型,我需要一些范围思科swicth.Now端口的为范围执行一些命令。再拿上面的列表我可以得到。
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
非常感谢@ GIC82 – munish 2013-04-25 13:08:36
什么是模式($模式,L)我不明白什么是L和H在这个关联数组中。 – munish 2013-04-25 13:59:23
这只是我可以说的变量或标签(不是任何关键词)。我使用这些来获取相同模式的较低(L)和较高(H)范围的值。在数组中,我们可以有多个由逗号分隔的键。 – GIC82 2013-04-26 05:15:39