匹配两行之间并计数
文件格式如下:consensus
model
primary
primary
primary
primary
consensus
model
primary
primary
primary
primary
consensus
model
primary
primary
primary
primary
primary
primary
primary
consensus
匹配consensus之间的内容并计数,输出
consensus1 number1
consensus2 number2
。。。。
number1是第一个consensus1与第二个consensus2之间的数量,以此类推,文件很大,几万行吧
回复 1# nanshanjin
计算primary 还是 非consensus的行都算?
#http://bbs.chinaunix.net/thread-4289910-1-1.html
my $spec = "consensus";
my $line;
my ($mi, $ni) = (0, 0);
while ( $line = <DATA> )
{
if ($line=~/^consensus\r?\n?/i)
{
printf "%s%d %d\n", $spec, $mi, $ni if ($mi > 0);
$mi++;
$ni = 0;
}
else
{
$ni++;
}
}
__DATA__
consensus
model
primary
primary
primary
primary
consensus
model
primary
primary
primary
primary
consensus
model
primary
primary
primary
primary
primary
primary
primary
consensus
输出
consensus1 5
consensus2 5
consensus3 8
页:
[1]