#!/usr/bin/perl -s # tsv - stdin filter to extract/manipulate columns of tab-separated text # Steve Kinzler, kinzler@cs.indiana.edu, Jan 06 # http://www.cs.indiana.edu/~kinzler/home.html#unix require 5.000; die <) { chomp; @_ = split(/$spatt/, $_ . 'EOL'); $_[$#_] =~ s/EOL$//; @__ = @_; map { eval $_ } @adjs; print join($jchar, @o = map { eval $_ } @cols), "\n"; @i = @__; } ############################################################################### sub colindex { local $_ = shift; return "($1-1)" if /^[a-z]?($int)$/x; return "($1)" if /^[A-Z]($int) $/x; return '$#_' if /^(nc|NC) $/x; $_; } sub colcode { local $_ = join('', @_); s/\bc($int)\b/\$_[$1-1]/gx; s/\bC($int)\b/\$_[$1]/gx; s/\bi($int)\b/\$i[$1-1]/gx; s/\bI($int)\b/\$i[$1]/gx; s/\bo($int)\b/\$o[$1-1]/gx; s/\bO($int)\b/\$o[$1]/gx; s/\bnc \b/(\$#_+1)/gx; s/\bNC \b/\$#_/gx; $_; }