# fieldcount.pl
# go thru a file and give counts by some field
# usage: perl fieldcount.pl -s [startcol] -e [endcol] filename
sub message {print STDERR "$. lines counted, col $s to $e in $ARGV\n";
+}
use Getopt::Long;
GetOptions("s=i" => \$s, "e=i" => \$e);
$l = 1+$e-$s;
if ($e<0 || $s<0 || $l < 1) {die "usage: perl $0 -s startcol -e endcol
+ myfile.txt\n";}
$s0=$s-1;
while (<>) {
if (($. % 10000) ==1) {&message;}
$n{substr($_, $s0,$l)}++; $tot++;
}
&message;
foreach (keys %n) {
print "$_\t$n{$_}\n";
}
print "total $tot\n";
|