$0

TSV形式ファイルにおいて、各列に何桁の文字列が何件含まれていたかを一覧表示する。 出力の右側は、具体的な文字列の例を表す。その頻度は薄い文字で括弧内に表す。 2番目の例は、1番目とは異なるものを探す。できるだけ長い文字列を採用するようにアルゴリズムの設計は試みたが、そうなるとも限らない。

使用例 : $0 -e ' ' # 各カラム(列)において、全角空白の文字が何回持つものが、何行出現したかを、行列状に出力。 $0 -e '[0-9]' # 各カラム(列)において、0から9までの10通りの文字が何回あらわれたものが何行出現したかを、行列状に出力。 $0 -M # 同じセルに同じ文字が何度も使われている様子を確認する。数値のみが想定されるカラムで、ピリオドが2個出現した文字列が存在しないかのチェックに使える。 $0 -y 1..5 # 出力表の各列の表頭を1,2,3,4,5に制限する。このことで横幅が短くなり、また例の表示で、6以上に対応するものの出力が抑制されて、見やすくなる場合がある。

オプション :

-=     : 入力の1行目を、変数名の並びと見なすか。見なした場合、出力の1列目に、列番号の代わりに列名が並ぶ。
-0 str : 頻度が0の場合に与える文字列
-e RGX : 各セルの文字列長を測る代わりに、正規表現RGXをいくつ持っていたかを測るようにする。 -e '1' や -e '[0-9]$' や -e '大' を指定可能。
-i str : 入力の区切り文字。未指定なら \t すなわちタブ文字。csvなら -i , のように与える。
-u 0   : UTF-8 と通常見なすが、そうせず、バイナリのまま処理をする。
-y ... : 出力表の表頭に現れる数値を限定する。..や,を使う。例、 2..5 または 1,2,10 など。
-R 0   : 改行がWindows形式すなわち \r\n であっても、\nしか改行文字と見なさない。(何かこの特殊な用途を想定して実装した。)

-M     : 同じセルに2回以上現れた文字を、何回出現したものが、どんな文字があったかを、出力表の形で、出力する。 ..で範囲表示。()内の数は該当する異なる文字の数。

--help : このオンラインのヘルプ画面を出力する。 perldoc $0 や man $0 でも可能であろう。

開発メモ : * 半角数値およびピリオドとプラスマイナスさらに半角空白の頻度表の機能を実装したい。 * 平均と分散を算出する機能を入れたい(不偏分散の平方根とするか否か) * 先頭文字または末尾の文字についても一覧にしたい。 * -Mのオプションのサブオプションとして、連続して同じ文字が現れる様子も考察可能としたい。