Pal,
I have to files that I am trying to match:
Generated from rpm -qa > file1
file1
libstdc++-4.1.2-48.el5
info-4.8-14.el5
libICE-1.0.1-2.1
libacl-2.2.39-6.el5
lcms-1.18-0.1.beta1.el5_3.2
dmidecode-2.10-3.el5
.......
Generate from rpm -qa --queryformat '%{NAME}\n' > file2
file2
acl
alacarte
alchemist
alsa-lib
alsa-utils
amtu
apr
apr-util
aspell
aspell-en
..............
I am trying to list files that exist on file1 that are missing on file2 and
have the following script:
#! /usr/bin/perl
use strict;
#use warning;
open MSRT, "/Users/williamm/Documents/file1" or die $!;
open Test_server, "/Users/williamm/Documents/file2" or die $1;
#open MSRT, "/Users/williamm/test1_rpm.txt" or die $1;
#open Test_server, "/Users/williamm/test2_rpm.txt" or die $1;
my $tom;
my $msrt;
while ($tom = <Test_server>) {
chomp($tom);
# print "T:$tom\n";
while ($msrt = <MSRT>) {
chomp($msrt);
# print "M:$msrt\n";
if ($msrt =~ /^\Q$tom\E/){
# if ($msrt =~ m/^$tom.*$/){
print "$tom: $msrt\n";
# print "Found\n";
}
}
}
williamcomputer:~ williamm$ perl compareRPM.pl
acl-2.2.39-6.el5: acl-2.2.39-6.el5
It does loop through the two files fine, but I think the regular expression is
not working fine. It only match one RPM, but I have been able to find many
others that should have matched. For example, this should have been printed out.
krb5-libs-1.6.1-36.el5_4.1: krb5-libs
Any idea of what tweak to the regular expression I need apply to make it work
properly? Also, advice of a better way of solving this problem would also be
appreciated.
Thanks in advance
William
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/