$0
入力データを各行を区切り文字ごとに区切って、文字の長さに変換して出力する。
行末の改行文字は特にオプションで指示のない限り、長さ計算の対象ではない。
オプション :
-i str : 区切り文字の変更。
-l 0 : 各行の全体の長さを算出。行末文字を含めない。
-l + : 各行の全体の長さを算出。行末文字を含めた長さとする。
-s 0 : 空白文字を除去して処理する。i.e. 非空白文字のみが処理対象
-s 1 : 非空白文字を除去して処理する。 i.e. 空白文字のみが処理対象。(1の部分は0以外の何でも良い)
-u : utf-8 とみなして、長さを計算する。そうでなければ、単純なバイト長になる。
-v : utf-8 の文字幅で長さを計算する(半角は1、全角は2)。(visual-width)
-C 0 : 上記の処理で0を与える列の数を数える。(columns count)
-C 0b : 上記の処理で0を与える列の最初の位置を与える。無ければ0。
-C 0e : 上記の処理で0を与える列の最後の位置を与える。無ければ0。
-C 0be : 上記の処理で0を与える列の最初と最後の位置を与える。無ければ0。
-C -0 : 上記の処理で0を与えない列の数を数える。-0でなくて0-の2文字も可。
-C -0b : 上記の処理で0を与えない列の最初の位置を与える。無ければ0。
-C -0e : 上記の処理で0を与えない列の最後の位置を与える。無ければ0。
-C -0be : 上記の処理で0を与えない列の最初と最後の位置を与える。無ければ0。
-C 1 : 列の数を数える。(1の部分は実際には0または-0で無ければ何でも良い)
-c : これは -C 1 と同じ(列の数を数える)。
-= : 1行目を(ヘッダと見なして)そのまま出力する。
-1 : 各行について、元の文字列を右側に付加する。
-@ : ファイル名を行末に出力。(output filename)
-^ : ファイルを読み終わった後に、ファイル名を出力する。"^(タブ文字)ファイル名" が出力される。
-! : フラッシュする。バッファに貯めない。
-f 'Ns' : Nは数字でsは文字列。Nで固定長で数を表示し、区切り文字がsとなる。溢れた場合は*を表示
--help : この $0 のヘルプメッセージを出す。 perldoc -t $0 | cat でもほぼ同じ。
--help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。
ヒント:
$0 -= some.tsv | colsummary -= とすると、長さの分布が得られる。
開発上のメモ: * セル中の空白文字を無視する様な設定を実装したい。 * 正規表現で無視する文字列を指定できるようにしたい。 * Unicodeの全角空白はきちんと処理をするはず。 * 空行に対して、1列目を0文字と見なすのが妥当だと思われるが、現状、空行を返す。