如何求出两个文件中重复数据的个数?perl高手指点!
其中一个文件内容如下:
3561,17158,1
5511,8335,1
209,18497,3
如果另一个文件的内容:
3561,17158,4
5511,8335,6
209,18497,39
1239,600,2
1,17159,1
4621,9741,1
... ...输出的结果应为:
3561,17158
5511,8335
209,18497
三个重复的。
如果两个文件中前两个数相同视为一个重复如:3561,17158重复
文件大概有一万多行
问题点数:30、回复次数:2Top
1 楼beyondsky00(凌云飞)回复于 2004-05-02 09:12:31 得分 30
我晕!
下面用的不是perl?
my $filename=$ARGV[0];
my % counts =();
open IN_FILE, "<$file_name "or
die("Could not open $file_name");
while(<IN_FILE>){
if(/^(\S+,\S+),.*/){
my % new_entry=(
info=>$1
);
push(@count_info,{%new_entry});
}
}
close IN_FILE;
foreach my $cur_count(@count_info){
if(not defined($counts{$cur_count->{info}})){
$counts{$cur_count->{info}}=1;
}
else
{
$counts{$cur_count->{info}}++;
}
}
foreach my $line_info (sort keys %counts){
print "The line :$line_info ==> $counts{$line_info}\n";
}
去试下~
Top
2 楼wings2004(模糊的世界)回复于 2004-05-02 11:12:13 得分 0
谢谢
Top




