我必须编写一个Perl脚本,以HHHH.HHHH. HHHH格式获取MAC地址,其中“H”是一个十六进制数字,并给予HH:HH:HH:HH:HH:HH的输出。
下面是一个输入文本示例:
System Information
Local port :xgei-1/6/1
Group MAC address :Nearest Bridge
Neighbor index :1
Chassis type :MAC address
Chassis ID :4cf5.5b8b.f860
Port ID type :Interface name
Port ID :XGigabitEthernet0/0/1
Time to live :109
Port description :ZTE-2-C650-172.24.102.77
System name :main-link-lab-cdi-sw-01
下面是我处理MAC地址数据的脚本片段:
if ($linha =~m/^Chassis ID/){
my($chassisID) = $linha=~ /:(.*)/g;
$lldpInfo{$localInt}{"chassisID"} = $chassisID;
print $chassisID."\n";
}
在本例中,我必须处理变量$chassisID
。
3条答案
按热度按时间o2rvlv0m1#
您可以使用CPAN中的NetAddr::MAC模块以多种不同的方式解析和格式化MAC地址:
tjvv9vkg2#
一种快速而又不太实用的方法是在
.
上拆分字符串,将条目(假定每个条目4个字符)Map到由:
分隔的2个字符片段中,然后使用:
分隔符重新连接结果输出量:
q8l4jmvw3#
如果不能省略前导零,可以使用以下较短的解决方案:
第一次