找回密码
 注册
查看: 5486|回复: 3

perl一列数据去冗余的l程序

  [复制链接]
发表于 2010-6-6 10:01:32 | 显示全部楼层 |阅读模式
一列数据如果有相同的,下面的程序可以去掉冗余的,留下的数据彼此都不相同
#!/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";

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 23:23 , Processed in 0.021892 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表