#!/bin/csh -f
# Extract column(s) given by character positions from standard input.
# Intervals of characters extracted are [$1,$2], [$3,$4], [$5,$6], etc.
# If $1 > $2, then interval is beginning of line to $2 along with
# $1 to end of line, and similarly for the other intervals.

if ($#argv < 2) then
  echo "Usage: exchars begpos endpos [begpos endpos ...]"
  exit 1
endif

set selector

while ($#argv >= 2)
  set begpos = $1
  set endpos = $2
  if ($begpos <= $endpos) then
    set selector = "$selector,$begpos-$endpos"
  else
    set selector = "$selector,-$endpos,$begpos-"
  endif
  shift; shift
end

set selector = `echo $selector | cut -c2-`

cat | cut -c$selector
