# I used ssh server1 lslpp -Lc > /tmp/lslpp_files/server1.log to create
# the log files. I then did a cat of all the log files sorting out the unique
# cat /tmp/lslpp_files/*log | cut -d":" -f1 | sort -u
#!/usr/bin/
perl
@host=(server1, server2, server3);
for $host (@host) {
open(MYINPUTFILE, "</tmp/lslpp_files/$host.log");
my (@lines) = <MYINPUTFILE>;
foreach $line (@lines)
{
chomp;
next if /^#/;
( $PackageName, $Fileset, $Level, $State, $PTFId, $FixState, $Type, $Description, $DestinationDir, $Uninstaller, $MessageCatalog, $MessageSet, $MessageNumber, $Parent, $Automatic, $EFIXLocked, $InstallPath, $BuildDate ) = split ( /:/, $line);
#print "$host -- $Fileset -- $Level\n";
$HoH{$host}{$Fileset} = $Level;
}
close(MYINPUTFILE);
}
#
# compare file
#
open(COMPFILE, "</tmp/lslpp_files.final");
my (@complines) = <COMPFILE>;
#
# print header
#
print "fileset:server1:server2:server3\n";
foreach $compline (@complines)
{
( $Filset, $Lvl ) = split ( /:/, $compline);
print "$Filset";
for $host (@host) {
print ":$HoH{$host}{$Filset}";
}
print "\n";
}
close(COMPFILE);