#!/usr/bin/perl
use strict;
use warnings;
{
local $/ = '>Group';
while (<DATA>) {
chomp;
print ">Group$_" if tr/\n// > 2;
}
}
__DATA__
>Group 42
0 25ap, >name_06-T_1_0... at 92.00%
1 28ap, >name_06-T_1_0... *
>Group 43
0 28ap, >name_07-N_1_0... *
>Group 44
0 29ap, >name_07-N_1_0... *
>Group 45
0 25ap, >name_03-T_1_0... *
1 25ap, >name_06-T_1_0... at 100.00%
2 25ap, >name_07-N_1_0... at 100.00%
3 25ap, >name_11-N_1_0... at 100.00%
4 25ap, >name_14-T_1_0... at 100.00%
prints
>Group 42
0 25ap, >name_06-T_1_0... at 92.00%
1 28ap, >name_06-T_1_0... *
>Group 45
0 25ap, >name_03-T_1_0... *
1 25ap, >name_06-T_1_0... at 100.00%
2 25ap, >name_07-N_1_0... at 100.00%
3 25ap, >name_11-N_1_0... at 100.00%
4 25ap, >name_14-T_1_0... at 100.00%
If you want to separate the records with a newline in the output, add a newline in the print. print ">Group$_\n" if tr/\n// > 2; |