0

vlan_outcomeの内容

show int description | include Vl[0-9]+
Vl1                            admin down     down
Vl150                          up             up

次の正規表現を変数に入れるにはどうすればよいですか?

var1 = Vl1  var2 = admin down var3 = down
war2 = Vl150 war3 = up        war3 = up

より正確に言えば、両方の列のステータスが表示された場合にのみ、割り当てが発生するようにします(var1 = Vl1またはwar1 = Vl150)

これまでのところ、私は試行錯誤しています:

foreach element [ split $vlan_outcome "\n" ] {
#regexp (Vl\[0-9\]+)(\[\[:blank:\]\]+)(.*)(\[\[:blank:\]\]+)(.*) ignore vlan state1 state2
puts $element
}
4

1 に答える 1

2

あなたの質問は、文字列を単語に分割する方法です。

したがって、データを1行ずつループする場合は、次のように行を正規表現を使用して単語に分割します。

set data [regexp -inline -all -- {\S+} $line]
if {[lindex $data 1] == "up" && [lindex $data 2] == "up"} {
    set value [lindex $data 0]
}
于 2013-03-11T11:44:57.130 に答える