This module provides a UNIX-like command `collen'. 

 Copyright (c) 2020-2023 Toshiyuki SHIMONO. All rights reserved.
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.


■■ 概要 ■■

このモジュールをインストールすると、コマンド collen が使えるようになる。

■■ 目的 ■■

 入力の列について、いろいろな数を調べる。


 入力データを各行を区切り文字ごとに区切って、文字の長さに変換して出力する。
 行末の改行文字は特にオプションで指示のない限り、長さ計算の対象ではない。

オプション :

  -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文字以上一致すれば良い。
 

■■ コマンドの例 ■■

 collen -= some.tsv | colsummary -= とすると、長さの分布が得られる。

■■ 利用シーンの例 ■■

  collen -c FILE.tsv  により、ファイルの各行の列数を知ることが出来る。
   (awk -F'\t' '{print NF}' でも可能であるが、動作が本当に意図通りであるか
    不安になるかも知れない。awkとgawkとnawkの別があるし、awkの世代で動作が
    異なる場合もあるため。)


  collen -c FILE.tsv | freq -f で、列数の頻度表が出力される。(全ての列が揃っているか点検が可能。)

■■ 補足 ■■

  コマンド自体は開発歴は長いが、このコマンド単体のパッケージ化は、この文章を
  書いた時点(2023-08-12, Version 0.250)で、1時間も経ってないので、この解説文
  する余地は多いであろう(今まで必ず2〜3日別の日に何度も点検しないと満足なパッケージには
  ならない)。