1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#!/usr/bin/perl -w
$file = shift @ARGV;
$s = (-s $file);
$maxs = 1900000000;
if($s < $maxs) {
print "File '$file' size $s is under $maxs\n";
exit();
}
($fpre,$fpost) = ($file =~ /(.*)[.]([^.]+)/);
$cnt=1;
open (IN, $file) || die "Cannot open input file";
open (OUT, ">$fpre$cnt.$fpost") || die "cannot open output file $cnt";
$entry = "";
while (<IN>) {
if(/^ID /) {
if ($entry ne "") {
if(tell(OUT) > $maxs) {
close(OUT);
$cnt++;
open (OUT, ">$fpre$cnt.$fpost") ||
die "cannot open output file $cnt";
}
print OUT "$entry";
$entry = "";
}
}
$entry .= $_;
}
print OUT "$entry";
close OUT;
|