2017-02-02 7 views
0

TCLとExpectに新しくなりました。インターフェイス名を使用して特定のインターフェイスのIPアドレスを抽出しようとしました。tclのインターフェイス名を使用してsh ip int briefからIPアドレスを抽出します。

サンプル入力:

Interface     IP-Address  OK? Method Status    Protocol 
Embedded-Service-Engine0/0 unassigned  YES NVRAM administratively down down  
GigabitEthernet0/0   unassigned  YES NVRAM up     up  
GigabitEthernet0/0.10  10.1.1.1  YES NVRAM up     up  
GigabitEthernet0/0.20  20.1.1.2  YES NVRAM up     up  
GigabitEthernet0/1   192.168.2.1 YES NVRAM up     up  
GigabitEthernet0/2   192.168.1.1 YES NVRAM up     up 

私は、誰かが、この中で私を助けることができます....、これを試してみました

regexp -line^$interfacename.*?(?=(?:\\..*?)?\\d{1,}) $temp 

が、その私にどんな答えを与えていません。

答えて

1

IPアドレスを抽出しようとしていますか?例、 "GigabitEthernet/1"の192.168.2.1が正しいとしますか?あなたがここに先読みを必要としない

% set interfacename GigabitEthernet0/1 
GigabitEthernet0/1 
% set re "^$interfacename\\s+(\[\\d.]+)" 
^GigabitEthernet0/1\s+([\d.]+) 
% regexp -inline -line $re $input 
{GigabitEthernet0/1   192.168.2.1} 192.168.2.1 
% regexp -line $re $input -> ip 
1 
% set ip 
192.168.2.1 

:はい場合

。また、^文字の後ろにスペースを入れたくありません。

+0

グレンの仕事に感謝します.... –

関連する問題