Solved

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

Posted on 2009-07-13
3
253 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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

I have been pestered over the years to produce and distribute regular data extracts, and often the request have explicitly requested the data be emailed as an Excel attachement; specifically Excel, as it appears: CSV files confuse (no Red or Green h…
A year or so back I was asked to have a play with MongoDB; within half an hour I had downloaded (http://www.mongodb.org/downloads),  installed and started the daemon, and had a console window open. After an hour or two of playing at the command …
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…

832 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