The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

コマンド

  $0 inputfile 
  $0 < inuptfile 
  cat inputfile | $0 

 各文字yが丁度x個持つ文字が、何個の行に出現したかを行列状に表示するコマンドである。

 下記の用途に使える。他にも幅広い用途に使えるであろう。
  - 小数点が2回出現したとか、括弧の対応がついていない可能性が検出容易。
  - 特別値や特殊文字も見つけやすくなる。

オプションに関して:

  -0 STR : 頻度が0であることをSTRで表示。未指定なら"-" となる。-0 0 のような使い方が想定される。
  -2 0 : 入力行数や処理時間などの2次情報を、標準エラー出力に出力しない。
  -q STR : 出現した各文字を、STR で囲って表示する。未指定ならシングルクォーテーション(')。'1'のようになる。
  -v 0 : 具体例の抑制。(出力される具体例は、その文字を最も多く持つ入力行で、最初のものと、それとは異なる最後のものである。)
  #-y N : 横軸の値が N 以上の場合の、文字のみ出力する。
  -@ N  : N秒おきに、入力の読み取り状況を標準エラー出力に出力する。

  -R   : 異なる各文字が、それぞれの行で、最長で何文字連続したかを、数えるようにする。

  --help : このオンラインヘルプの文面を表示する。

その他: * 具体例の表示の説明は、もう少し正確で的確で簡潔な説明が必要。(内部のプログラムを見る必要あり。) * -: によって、具体例のところに行番号が付加されるようにしたい。 123:"someline" のように。 * 出力の表示順序について、times (頻度; 横軸の数) が多い順に表示するオプションが欲しい。 * 他の表示順序のオプションも考えたい。各文字の出現頻度順など。-~で逆転させるなど。 * 具体例において、その文字列が何回出現したかを暗い文字で括弧内で表示させたい。 * 文字コードも出したいが、他のコマンドで今は代替できるので、もしかしたら後で実装する。 * 1文字単位なので、このコマンドは動作が少し遅く感じられるかも。