perl编写程序求出一个文件(以逗号隔开)中从第七列到最后列中元素出现的次数,行与行之间长度不同
文件如下:at1g3400,2000,3000,4000,5000,5,6000,A-B,B1,C1,D1at2g3401,2001,3001,4001,5001,4,6...
文件如下:
at1g3400,2000,3000,4000,5000,5,6000,A-B,B1,C1,D1
at2g3401,2001,3001,4001,5001,4,6100,A-B,F1
at3g3402,2500,3500,4004.5050,6,6200,C1,F1,G1,H2,H1
统计从第七列(第一行的A-B)开始每个元素在文件中出现的次数 展开
at1g3400,2000,3000,4000,5000,5,6000,A-B,B1,C1,D1
at2g3401,2001,3001,4001,5001,4,6100,A-B,F1
at3g3402,2500,3500,4004.5050,6,6200,C1,F1,G1,H2,H1
统计从第七列(第一行的A-B)开始每个元素在文件中出现的次数 展开
1个回答
展开全部
仔细数了一下,你说的第7列,实际上是第8列。
这个程序很简单,做一个计数的hash表,以“元素”为主键,缺省值都为0,看到一个就+1就行了。
#!/usr/bin/perl
my %hash;
open FILE,"<a";
foreach my $line (<FILE>)
{
# 去掉每行尾的回车符
chop($line) while ($line =~ /[\r\n]$/);
my @fields = split(/,/, $line);
# 从第8列开始
for (my $i=7; $i<@fields; $i++)
{
$hash{$fields[$i]}++;
}
}
close FILE;
foreach my $key (keys %hash)
{
print "[$key]:$hash{$key}\n";
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询