$0

 入力をTSVと見なして、同じ列は縦に揃えて空白文字で埋めて出力する。

[オプション] :

 -b char ; 間に埋める文字列。未指定なら半角空白 ' ' 。例として  -b "-" 。betweenのbのつもり。
 -c char ; 列間で、列の直前に入れる文字。未指定なら半角空白 ' ' 。例として  -c "|" 。connectorのcのつもり。
 -f : ある行が列の数が少ないときに、最も列数の多い行に合わせて、列の数を増やす指定。
 -i delim : 区切り文字の変更。未指定なら、タブ文字。(出力は空白文字うめであり、変えない。)
 -r N  : 最も右側の列を何列について、文字幅の計算の対象外とするかの 値の指定。未指定なら 0。
 -s N : (実験的)出力の各セルにおいて、長すぎるセルを可能であれば埋めた空白をさらに幅何文字分(半角相当)まで縮めるか指定。
 -x : less に渡す引数(-xによるタブ位置の指定)のみを出力して終了。時には、とても便利。
 -D num : このコマンドの動作についてのデモを表示して終了。numは1〜4。(開発上テストでも使う。)

 --delcolor : 単に入力の着色(ASCIIエスケープシーケンスによるもの)を除去。テスト機能であり、おまけの機能である。
 --right : 右揃えにする。この指定が無いと、左揃えである。
 --keep 'CRLF' : Windows形式だと改行文字が CR LF となるが、そのCRの部分を取り除く操作を、このオプション指定だと抑制する(テスト目的などを想定)。


 --help : この $0 のヘルプメッセージを出す。  perldoc -t $0 | cat でもほぼ同じ。
 --help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。

 開発メモ: 
  * 行列として変数Cを参照するときに値が未定義の時にどうすれば良いか。
  * INT{ALRM}を使って15秒ごとに、一旦出力する機能を付けたい。
  * Ctrl+ZやCtrl+Cに対する機能を付けたい。
  * -x による less の -xに渡す数の配列を STDERR に出力したい。その場合、2次情報の出力を抑制する -20も実装することになるであろう。
  * --rightにおいて、特定の列だけ、または、特定の列以外を右寄せに出来ないだろうか?
  * 出力の最後が余分に1行出力されている問題が発生中。

 Text::VisualWidth のインスートルがあらかじめ必要である。