Solved

Is it possible to write a Perl one-liner to get difference between two files?

Posted on 2009-07-13
3
264 Views
Last Modified: 2012-05-07
Have two files test1.txt and test2.txt
test1.txt
AA-A123
AABBCC
123_ABC
XYZ-A01
.....
test2.txt
123_ABC
AABBCC
AA-A123
....
Want to get test1.txt subtracts test2.txt , i.e.
XYZ-A01
You can assume that test2.txt is a part of test1.txt but the order is not necessarily same.
0
Comment
Question by:jl66
3 Comments
 
LVL 39

Assisted Solution

by:Adam314
Adam314 earned 150 total points
ID: 24840280
Not a 1-liner, but this works....
##### Remove file1 from @ARGV (process file2 first)
my $f2=shift(@ARGV);
 
##### Read file2
my %file2;
while(<>) {
	chomp;
	$file2{$_}++;
}
 
push @ARGV, $f2;
while(<>) {
	chomp;
	next if $file2{$_};
	print "$_\n";
}

Open in new window

0
 
LVL 84

Accepted Solution

by:
ozo earned 350 total points
ID: 24841645
perl -ne "print unless $s{$_}++||@ARGV" test2.txt test1.txt
0
 

Author Comment

by:jl66
ID: 24856801
Thank both of you very much. I will verify the solutions later.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question