清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/usr/bin/perl -w use strict; my ($fileA,$fileB) = @ARGV; open A,'<',$fileA or die "Unable to open file:$fileA:$!"; my %ta; my $i; while(<A>){ chomp; $ta{$_} = ++$i; } close A; open B,'<',$fileB or die "Unable to open file:$fileB:$!"; my @B; while(<B>){ chomp; unless (defined $ta{$_}){ push @B,$_; }else{ $ta{$_} = 0; } } close B; # Output diff to different files respectively open DIFF_A, ">$fileA.diff" or die "Unable to create diff file for $fileA:$!"; my $countA; print "Remain in files $fileA\n"; my %tt = reverse %ta; foreach (keys %tt) { $countA += $_>0? print DIFF_A $tt{$_}."\n":0; } print "$countA lines\n"; close DIFF_A; open DIFF_B, ">$fileB.diff" or die "Unable to create diff file for $fileB:$!"; my $countB = scalar @B; print DIFF_B $_."\n" foreach @B; if ($countA == 0 and $countB ==0 ){ print STDOUT "The two files are identical\n"; } close DIFF_B;