Chinaunix
标题:
匹配两行之间并计数
[打印本页]
作者:
nanshanjin
时间:
2017-11-06 13:57
标题:
匹配两行之间并计数
文件格式如下:
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之间的数量,以此类推,文件很大,几万行吧
作者:
523066680
时间:
2017-11-06 21:14
回复
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
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2