Chinaunix首页 | 论坛 | 博客
  • 博客访问: 552727
  • 博文数量: 38
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 1460
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-24 13:04
文章分类

全部博文(38)

文章存档

2012年(1)

2010年(9)

2009年(3)

2008年(25)

我的朋友

分类: LINUX

2010-11-30 14:11:34

统计第二列,每一竖行的字母的个数:

测试数据如下:
AB78954    QDKLJLKASJDFQIPQRUWEIRJPFMQPJEFIJWEFQPEIJFQWJEPIJFQ
AB78955    JAUTUSADTFUDIADCHEUWYFOUYSOUDIFYOUIWEYFHJKASDFHQK
AB78956    IEOUQFMFAJDSKHFUYDCHIUVOHASDUNOHUEHRQOIUHFAOIUSHF
AB78957    NVCNQJEOYUFIEWFNMDNCOEUWCQNCONVXCNBVOQYEWBYEB
AB78958    UOWEYFHBVMXCBVHOBWEUYBVYEBVMNBVHJBOEUFPEUIYPEIY
AB78959    UIQOYTUIQTPOEIWUTHVZXCBNVMANBOEYQFWYFGOUYEGFUWEIF
AB78960    QDKLJLKASJDFQIPQRUWEIRJPFMQPJEFIJWEFQPEIJFQWJEPIJFQ


我写的代码:    (可能不是最好的,有高手请指正)

#!/usr/bin/perl

use strict;
use warnings;

my @str;
my %has;

my @rows;

while (<DATA>)
{
    my ($f,$l) = split /\s+/;
    my @rows = split //,$l;
    my $col = 0;
    foreach (@rows)
    {
        $has{$col}{$_}++;
        $col++;
    }
}

my @kyes = sort keys %has;



foreach my $key (@kyes)
{
    print "$key\n";
    my @ks = sort keys %{$has{$key}};
    foreach my $k (@ks)
    {
        print "\t$k\t$has{$key}{$k}\n";
    }
}



__DATA__
AB78954    QDKLJLKASJDFQIPQRUWEIRJPFMQPJEFIJWEFQPEIJFQWJEPIJFQ
AB78955    JAUTUSADTFUDIADCHEUWYFOUYSOUDIFYOUIWEYFHJKASDFHQK
AB78956    IEOUQFMFAJDSKHFUYDCHIUVOHASDUNOHUEHRQOIUHFAOIUSHF
AB78957    NVCNQJEOYUFIEWFNMDNCOEUWCQNCONVXCNBVOQYEWBYEB
AB78958    UOWEYFHBVMXCBVHOBWEUYBVYEBVMNBVHJBOEUFPEUIYPEIY
AB78959    UIQOYTUIQTPOEIWUTHVZXCBNVMANBOEYQFWYFGOUYEGFUWEIF
AB78960    QDKLJLKASJDFQIPQRUWEIRJPFMQPJEFIJWEFQPEIJFQWJEPIJFQ





阅读(1334) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~