私は次のようなリストを持っています
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
ここで、各データはcisco swicth の特定の範囲のポートを表しているか、またはGi3/0/
これらのタイプであると言えます。次に、すべてのタイプについて、範囲に対していくつかのコマンドを実行する必要があります。上記のリストを再度取得すると、取得できます。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