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
|
#!/usr/bin/env perl
unless (@params = @ARGV) {
die "usage: $0 [-t|-s] <number list | range>\n";
}
$delimeter = pop @params;
if ($delimeter eq '-s' || $delimeter eq '-t') {
if ($delimeter eq '-s') {
$delimeter = '\s+';
} elsif ($delimeter eq '-t') {
$delimeter = '\t';
}
pop @ARGV;
} else {
$delimeter = '\t';
}
if ($ARGV[0] =~ /(^\d+)\-(\d+)/) {
#print "$1\t$2\n";
@array = ($1 .. $2);
} else {
@array = @ARGV;
}
foreach $entry (@array) {
$here{$entry} = 1;
}
while (<STDIN>) {
chomp;
#my $tab = 0;
@columns = split (/$delimeter/, $_);
my $output = "";
for ($i = 0; $i <= $#columns; $i++) {
#if ($tab) { print "\t";}
if ($here{$i}) {
#print $columns[$i];
$output .= "$columns[$i]\t";
#$tab = 1;
}
}
$output =~ s/\s+$//; # remove trailing ws.
print "$output\n";
}
|