免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Perl 求助
最近访问板块 发新帖
查看: 1403 | 回复: 2
打印 上一主题 下一主题

求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-13 15:08 |只看该作者 |倒序浏览
有个文件里有很多id号(如下, 我想统计一下共有多少种,每种是多少个  如ref|NC_008399.1|:c25815067-25814660有三个
ref|NC_008399.1|:c25815067-25814660
ref|NC_008399.1|:c25815067-25814660
ref|NC_008399.1|:c25815067-25814660
ref|NC_008399.1|:c25815067-25814665
ref|NC_008399.1|:c25815067-25814665
ref|NC_008399.1|:c25815067-25814665
ref|NC_008400.1|:c1873069-1872671
ref|NC_008400.1|:c1873069-1872671
ref|NC_008400.1|:c1873069-1872671
ref|NC_008400.1|:c1873069-1872671
ref|NC_008400.1|:c1873069-1872671
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008394.1|:c31726824-31726420
ref|NC_008405.1|:15381243-15381635
ref|NC_008405.1|:15381243-15381635
ref|NC_008405.1|:15381243-15381635
ref|NC_008405.1|:15381243-15381635
............
............

请求高手帮助,指导一下用什么办法来解决.

我写了下面的代码试了下没有正确执行("x.txt"和"z.txt"是相同文件)
open(F,"x.txt" || die;
open(F2,">y.txt" ||die;

while($gb=<F>{
        chomp($gb);
        push(@seqid,$gb);
        }

$num=0;
for($i=0;$i<@seqid;$i+=$num){
        $num=0;
        open(F3,"z.txt" || die;
        while($gbk=<F3>{
                chomp($gbk);
                if($gbk=~m/$seqid[$i]/){
                        $num++;                     
                        }       
                }
                print F2 "$num\n";
                close(F3);
        }
close(F);       
close(F2);

论坛徽章:
0
2 [报告]
发表于 2011-01-13 15:24 |只看该作者
看你結果好像是排過序的, 直接用shell命令吧,

uniq

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
3 [报告]
发表于 2011-01-13 15:27 |只看该作者
这种情况就用 hash 啊,你写的程序看不出是干嘛的
  1. use strict;
  2. use warnings;
  3. use Data::Dumper;
  4. my %hash;
  5. while (<>) {
  6.     chomp;
  7.     $hash{$_} ++;
  8. }

  9. print Dumper \%hash;
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP