我基本上想要在兩個文本文件(CSV樣式)之間進行無序差異,在這裏比較前兩列中的字段(我不關心第3列值)。然後,我打印出file1.txt具有的值,但不會出現在file2.txt中,反之則是file2.txt與file1.txt相比。Perl無序文本文件之間的差異
FILE1.TXT:
cat,val 1,43432
cat,val 2,4342
dog,value,23
cat2,value,2222
hedgehog,input,233
FILE2.TXT:
cat2,value,312
cat,val 2,11
cat,val 3,22
dog,value,23
hedgehog,input,2145
bird,output,9999
輸出會是這樣的:
file1.txt:
cat,val 1,43432
file2.txt:
cat,val 3,22
bird,output,9999
我是新來的Perl等等一些更好,更難以實現的方法目前還不是我所知道的。謝謝你的幫助。
當前代碼:
#!/usr/bin/perl -w
use Cwd;
use strict;
use Data::Dumper;
use Getopt::Long;
my $myName = 'MyDiff.pl';
my $usage = "$myName is blah blah blah";
#retreive the command line options, set up the environment
use vars qw($file1 $file2);
#grab the specified values or exit program
GetOptions("file1=s" => \$file1,
"file2=s" => \$file2)
or die $usage;
($file1 and $file2) or die $usage;
open (FH, "< $file1") or die "Can't open $file1 for read: $!";
my @array1 = <FH>;
close FH or die "Cannot close $file1: $!";
open (FH, "< $file2") or die "Can't open $file2 for read: $!";
my @array2 = <FH>;
close FH or die "Cannot close $file2: $!";
#...do a sort and match
哇,這太棒了!非常簡潔,謝謝。 – user1384831
@ user1384831 - 非常歡迎您。增加了另一個選項。 – Kenosis