I would probably do something like the following:
#!/usr/bin/perl # use strict; use warnings; (@ARGV == 2) or die "USAGE: $0 master complete\n"; my ($master, $complete) = @ARGV; open(my $fh_complete, '<', $complete) or die "$complete: $!"; open(my $fh_master, '<', $master ) or die "$master: $!"; my %complete = map { $_=> 1 } <$fh_complete>; my @incomplete = grep { !$complete{$_} } <$fh_master>; print @incomplete;
update: kennethk pointed out in a private message that the requirement might be an XOR operation (to paraphrase: all lines from both files (master and complete) that are not in both files), rather than all lines in the master file that are not also in the complete file. The program above provides the latter.
update: maybe it would be clearer to say: all lines that appear in either and only one of the two files. It is difficult to be both simple and unambiguous with English.
In reply to Re: Pulling out data from one file thats not in another
by ig
in thread Pulling out data from one file thats not in another
by Angharad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |