dis vlan 100
VLAN ID: 100
VLAN Type: static
Route Interface: configured
IP Address: x.x.x.
Subnet Mask: y.y.y.y
Description: Text
Name: SomeMoreText
Tagged Ports:
Bridge-Aggregation1 Bridge-Aggregation2 Bridge-Aggregation3
Bridge-Aggregation6
Ten-GigabitEthernet1/0/18
Ten-GigabitEthernet1/0/20
Ten-GigabitEthernet1/0/21
Untagged Ports:
Ten-GigabitEthernet1/0/1
Ten-GigabitEthernet1/0/2
,我试图映射哪些端口知道该VLAN,以什么样的方式(标记或未标记)。我在确定端口是标记还是未标记时遇到了一些问题。代码:
foreach my $specificVlanLine (split "\n",$getSpecificVlanValue){
chomp $specificVlanLine ;
if ($specificVlanLine =~ m/dis vlan/){
#do nothing
} else {
if (index($specificVlanLine, ":") != -1) {
my @specificVlanSplit = split(":", $specificVlanLine) ;
$specificVlanSplit[0] =~ s/\s+//g;
$data{$vlanID}{$specificVlanSplit[0]} = $specificVlanSplit[1] ;
} elsif ($specificVlanLine =~ m/\d+\/\d+\/\d+/) {
$specificVlanLine =~ s/\s+//g;
$data{$vlanID}{"TaggedPorts"} .= "$specificVlanLine \n" ;
}
}
$getSpecificVlanValue
是我开始这个问题的完整输出。
问题是每个接口都放在taggedPorts中。这是有道理的,但我怎么能确定哪个以太网端口是标记的,哪些是未标记的?
TaggedPorts' => 'Ten-GigabitEthernet1/0/18
Ten-GigabitEthernet1/0/20
Ten-GigabitEthernet1/0/21
Ten-GigabitEthernet2/0/18
Ten-GigabitEthernet1/0/1
Ten-GigabitEthernet1/0/2
预期输出:
TaggedPorts' => 'Ten-GigabitEthernet1/0/18
Ten-GigabitEthernet1/0/20
Ten-GigabitEthernet1/0/21
Ten-GigabitEthernet2/0/18
UntaggedPorts' => 'Ten-GigabitEthernet1/0/1
Ten-GigabitEthernet1/0/2
您的预期产出是多少? – Guru
@Guru在问题中增加了预期的输出 – Noosrep