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
In reply to Re: get the line with ith occurrence of '>'
by Zaxo
in thread get the line with ith occurrence of '>'
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |