This file is indexed.

/usr/bin/sweepsplit is in gwave 20090213-4.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  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
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/bin/perl
#
# split the output of "sp2sp -s head" into multiple files, one per sweep.
#

use FileHandle;
use Getopt::Long;

sub usage {
	print STDERR "usage: sweepsplit [options] [file  [name]]
or:    sp2sp -s head | sweepsplit [options]
Options:
     -a Len         Use Len digits when constructing numered output file names
     -s N           Dump only sweep number N to stdout
     -t Type        Assume input is of type T (passed to sp2sp)
";

}


Getopt::Long::config('no_auto_abbrev',
                     'no_ignore_case','no_ignore_case_always');

$dump_sweepno = -1;
$suffixlength = 2;
$verbose = 0;
$fnbase = '';
$nsweeps = 0;

%optctl = ("s=i"               => \$dump_sweepno,
	   "a|suffixlength=i"  => \$suffixlength,
	   "t=s"               => \$infile_type,
           "v|verbose!"        => \$verbose
);

if(!GetOptions(%optctl)) {
	&usage();
        exit 1;
}

if($#ARGV >= 0) {  # input filename provided
	$infname = shift(@ARGV);
}
if($#ARGV >= 0) {  # base part of output filenames specified
	$fnbase = shift(@ARGV);
}

if(!$fnbase) { # If no output filename specified, construct one.
	if($infname) {
		$fnbase = $infname;
		$fnbase =~ s|^.*/([^/]+)$|$1|;   # remove leading directory names
		$fnbase =~ s|\.[^.]*$||;   # remove trailing .suffix
	} else {
		$fnbase = 'sp';
	}
}

$infp = new FileHandle;
if($infname) {
	if($infile_type) {
		$topt = "-t $infile_type";
	}
	$infp->open("sp2sp -s head $topt $infname|") || die "pipe from sp2sp $infname: $!";
} else {
	$infp->fdopen(STDIN, "r");
}


$heads = $infp->getline;

while($_ = $infp->getline) {

	if($_ =~ m/^\#\s*sweep\s*(\d+);/) {
		$sweepno = $1;
		open_outfile($sweepno);
		$nsweeps++;
	} else {
		if(!$fp) {
			open_outfile(0);
			$nsweeps++;
		}
		print $fp $_;
	}
}

$infp->close || "pipe from sp2sp $infname: $!";

if($fp) {
	$fp->close;
} else {
	print STDERR "no sweeps found\n";
	exit 1;
}

printf "%d sweeps\n", $nsweeps;

exit 0;
#############################################################################

sub open_outfile
{
	my($sweepno) = @_;

	if($fp) {
		$fp->close;
	}
	if($dump_sweepno == -1 || $dump_sweepno == $sweepno) {
		$fname = sprintf "%s%0*d.asc", $fnbase, $suffixlength, $sweepno;
	} else {
		$fname = '/dev/null';
	}
	$fp = new FileHandle $fname,"w";
	if(!defined($fp)) {
		die "$fname: $!";
	}
	print $fp $heads;
	
	# would like to include sweep number as comment - but gwave
	# can't deal with this.  to be fixed.
	# print $fp $_;
}