の内容expect_out(buffer)
GigabitEthernet1/0/9 unassigned YES unset up up
GigabitEthernet1/0/10 unassigned YES unset down down
GigabitEthernet1/0/11 unassigned YES unset down down
GigabitEthernet1/0/23 unassigned YES unset down down
GigabitEthernet1/0/24 unassigned YES unset down down
GigabitEthernet1/1/1 unassigned YES unset down down
GigabitEthernet1/1/2 unassigned YES unset down down
GigabitEthernet1/1/3 unassigned YES unset down down
GigabitEthernet1/1/4 unassigned YES unset down down
Te1/1/1 unassigned YES unset down down
Te1/1/2 unassigned YES unset down down
FastEthernet2/0/1 unassigned YES unset down down
FastEthernet2/0/2 unassigned YES unset down down
FastEthernet2/0/24 unassigned YES unset down down
GigabitEthernet2/0/1 unassigned YES unset up up
GigabitEthernet2/0/2 unassigned YES unset down down
上記のデータがあります。次のような情報を取得できるように、各タイプのデータ数をカウントする必要があります。
GigabitEthernet1 : 20
GigabitEthernet2 : 20
Tel : 2
FastEthernet2 : 4
FastEthernet1 : 4
合計:50
どうすればいいですか?私はexpect/tclに関する限り初心者なので、どちらの方向に進むべきかわからないので、助けていただければ幸いです。
分割関数を使用して改行を区切り文字として使用して解析しようとしました。これにより、forループ内で正規表現を使用できるようになりましたが、$ expected_output(buffer)は変数であるため、行が含まれていない可能性があります。
さらに、awkまたはsedをexpect内で使用できますか?そうすれば、それほど難しくはないと思います。しかし、期待される解決策は標準です。