一列数据如果有相同的,下面的程序可以去掉冗余的,留下的数据彼此都不相同
#!/usr/bin/perl
#去冗余程序
use strict;
use warnings;
my($i,$j,$k,$l,$num,@array,@array1);
$i=0;
open (MYFILE1,'D:\importdata.txt') or die '$!'; #导入文件
open OUT1,'+>D:\clear.txt'; #导出文件
while(<MYFILE1>){ #或while (defined($x=<MYFILE1>)){chomp($x);}
chomp($_);
$array[$i] =$_;
$i=$i+1;
}
print "原始文件行数目:$i\n"; #查看文件的行
$array1[0]=$array[0];
print OUT1 "$array[0]\n"; #写入第一行
$l=1;
for ($j=1;$j<$i;$j++) {
$num=0;
for ($k=0;$k<$l;$k++) {
if ($array[$j] eq $array1[$k]){
$num++;
}
}
if($num==0){
$l=$l+1;
$array1[$l-1]=$array[$j];
print OUT1 "$array1[$l-1]\n";
}
}
print "去冗余后的总数:$l\n";
|