in reply to get the line with ith occurrence of '>'
Update: Install a kernel with large file support enabled.
Untested code:
open my $infile, '<', '/path/to/basename.ext' or die $!; # count the >'s and get average number for each split file my $total = 0; $total += tr/>// for <$infile>; $each = $total / 8; # go bach to start and write first seven split files seek $infile, 0, 0 or die $!; for (1..7) { my $splitcount = 0; open my $outfile, '>', "/path/to/basename.split${_}.ext" or die $!; $splitcount += tr/>//, ($splitcount >= $each ? print $outfile $_ : last) for <$infile>; close $outfile or die $!; } # put the rest in split #8 open my $outfile, '>', "/path/to/basename.split8.ext" or die $!; print $outfile $_ for <$infile>; close $outfile or die $!; close $infile or die $!;
This will leave the first seven with slightly more than the desired average, and the last several short.
After Compline,
Zaxo
|
|---|