$0
入力をTSVと見なして、同じ列は縦に揃えて空白文字で埋めて出力する。
[オプション] :
-b char ; 間に埋める文字列。未指定なら半角空白 ' ' 。例として -b "-" 。betweenのbのつもり。
-c char ; 列間で、列の直前に入れる文字。未指定なら半角空白 ' ' 。例として -c "|" 。connectorのcのつもり。
-f : ある行が列の数が少ないときに、最も列数の多い行に合わせて、列の数を増やす指定。
-i delim : 区切り文字の変更。未指定なら、タブ文字。(出力は空白文字うめであり、変えない。)
-r : 右揃えにする。この指定が無いと、左揃えである。
-s N : 出力の各セルにおいて、長すぎるセルを可能であれば埋めた空白をさらに幅何文字分(半角相当)まで縮めるか指定。
-x : less に渡す引数(-xによるタブ位置の指定)のみを出力して終了。時には、とても便利。
-C0 : 単に入力の着色(ASCIIエスケープシーケンスによるもの)を取り除く。$0の主題と直接関係ないが、$0のテスト機能であり、おまけの機能でもある。
-D num : このコマンドの動作についてのデモを表示して終了。numは1〜4。(開発上テストでも使う。)
-R0 : 通常Windows形式の改行文字であるCRLFはCFの部分を取り除く。しかし-R0指定でその処理をわざと行わない(通常時に利用は想定されていない, テスト目的などを想定)。
--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も実装することになるであろう。
* -rにおいて、特定の列だけ、または、特定の列以外を右寄せに出来ないだろうか?