#!/perl/bin/perl use strict; use warnings; use Data::Dumper; open FH1, "<", "namecleanupapcdevices1.csv" or die $!; open FH2, "<", "acs_import.csv" or die $!; my (%firms, %acs); my $testrun = ''; my $recnum = 1; my $recnum1 = 1; my ($upload, $text); while (defined( my $line = ) ){ chomp $line; my ($type, $location1, $location2, $label, $model, $firmware, $hostname, $contact, $serial, $ip, $mac) = split ',', $line, 12; #$location1 =~ s/"?//g; #$location2 =~ s/"?//g; $label =~ s/\(.+\)?//g; $firms{$recnum}{type} = $type; $firms{$recnum}{location1} = $location1.",".$location2; #$firms{$recnum}{location2} = $location2; $firms{$recnum}{label} = $label; $firms{$recnum}{model} = $model; $firms{$recnum}{firmware} = $firmware; $firms{$recnum}{hostname} = $hostname; $firms{$recnum}{contact} = $contact; $firms{$recnum}{serial} = $serial; $firms{$recnum}{ip} = $ip; $firms{$recnum}{mac} = $mac; $recnum++; } while (defined( my $line2 = ) ){ chomp $line2; my ($name64, $update64, $description, $subnet, $support_radius, $radius_secret, $port, $support_keywrap, $keywrap_KEK, $keywrap_mack, $keywrap_display, $support_TACACS, $tacacsSecret, $singleconnect, $legacyTACACS, $Location_String, $Device_Type_String, $System_Owner) = split ',', $line2, 18; $subnet =~ s/\/32?//g; $acs{$recnum1}{name64} = $name64; $acs{$recnum1}{update64} = $update64; $acs{$recnum1}{description} = $description; $acs{$recnum1}{subnet} = $subnet; $acs{$recnum1}{support_radius} = $support_radius; $acs{$recnum1}{radius_secret} = $radius_secret; $acs{$recnum1}{port} = $port; $acs{$recnum1}{support_keywrap} = $support_keywrap; $acs{$recnum1}{keywrap_KEK} = $keywrap_KEK; $acs{$recnum1}{keywrap_mack} = $keywrap_mack; $acs{$recnum1}{keywrap_display} = $keywrap_display; $acs{$recnum1}{support_TACACS} = $support_TACACS; $acs{$recnum1}{tacacsSecret} = $tacacsSecret; $acs{$recnum1}{singleconnect} = $singleconnect; $acs{$recnum1}{legacyTACACS} = $legacyTACACS; $acs{$recnum1}{Location_String} = $Location_String; $acs{$recnum1}{Device_Type_String} = $Device_Type_String; $acs{$recnum1}{System_Owner} = $System_Owner; $recnum1++; } foreach $recnum(keys %firms){ print Dumper $recnum; $firms{$recnum}{label} = $acs{$recnum1}{update64}; $firms{$recnum}{location1} = $acs{$recunm1}{description}; } foreach $recnum1(keys %acs){ print Dumper $recnum1; #foreach $recnum(sort keys %firms){ #if (($acs{$recnum1}{name64} = $firms{$recnum}{label}) && ($firms{$recnum}{ip} = $acs{$recnum1}{subnet})){ $upload .= "$acs{$recnum1}{name64},$firms{$recnum}{label},$firms{$recnum}{location1},$acs{$recnum1}{subnet}/32,$acs{$recnum1}{support_radius},$acs{$recnum1}{radius_secret},$acs{$recnum1}{port},$acs{$recnum1}{support_keywrap},$acs{$recnum1}{keywrap_KEK},$acs{$recnum1}{keywrap_mack},$acs{$recnum1}{keywrap_display},$acs{$recnum1}{support_TACACS},$acs{$recnum1}{tacacsSecret},$acs{$recnum1}{singleconnect},$acs{$recnum1}{legacyTACACS},$acs{$recnum1}{Location_String},$acs{$recnum1}{Device_Type_String},$acs{$recnum1}{System_Owner}\n"; } # elsif ($acs{$recnum1}{name64} != $firms{$recnum}{label}){ # print "--- Not Found ---\n"; # print "Name: $acs{$recnum1}{name64}\nSubnet: $acs{$recnum1}{subnet}\n"; # next; # } print "completed\n"; open OutFile, ">", "ACS_import_list.csv" or die $!; print OutFile $upload; close OutFile; close FH1; close FH2;\