File: emblsplit.pl

package info (click to toggle)
emboss 6.6.0%2Bdfsg-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 571,584 kB
  • sloc: ansic: 460,579; java: 29,383; perl: 13,573; sh: 12,753; makefile: 3,294; csh: 706; asm: 351; xml: 239; pascal: 237; modula3: 8
file content (36 lines) | stat: -rwxr-xr-x 650 bytes parent folder | download | duplicates (10)
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;