App-Bin4TSV-6

 view release on metacpan or  search on metacpan

6.pm  view on Meta::CPAN

our $DATE = '2021-06-09T23:11+09:00' ; 

=encoding utf8

=head1 NAME

App::Bin4TSV::6 

=head1 SYNOPSIS

This module provides a Unix-like commands of :  

  colgrep
  colsummary
  crosstable 
  csel
  freq
  venn
 
=head1 DESCRIPTION

README  view on Meta::CPAN


This module provides a Unix-like commands: 

 colgrep
 colsummary
 crosstable
 csel
 freq
 venn


 Copyright (c) 2021 Toshiyuki SHIMONO. All rights reserved.

csel  view on Meta::CPAN

   - 範囲を指定することもできる。たとえば、-p 2..5 とすると2列目から5列目のみ表示する。 5..2 とすると、逆順になる。 ".." means range.
   
 開発上のメモ : 
    * -i の指定は正規表現と見なされるが、入力のsplitにも出力のjoin にも用いるので、注意が必要。
    * 引数で指定できる列に関して、範囲演算 .. に加えて  / で一定長の飛び飛びも定義できるようにしたい。
    * AWKのコマンドを生成するようにせよ。

このプログラムに求められる要件 (テストにも含めたい) :

    * 十分高速に動作すること。gawk と同じ程度が目標だった。cut よりは高速にしたかった。。
    * cutより早くするのが厳しければ、 同じファイルを Unix コマンドsort の半分程度であること。
    * $0 -p -1 できちんと最後の列を表示すること。
    * 列数が行毎に異なる入力データでも、きちんと動作すること。

# このブログラムは 2016年2月9日(火)から表形式データに対する道具作りの一環として、下野寿之が作成したものである。    
=cut

venn  view on Meta::CPAN

       -e perl_cmd_string ; 各行をchompした後の$_について、どう加工するか指定。-e 'substr $_,0,4' など。
       -q 0 : 値をクオーテーションで囲まない。
       -q STR; 0以外の値が指定されたら、その文字で囲む。"'" や'"'または必要に応じエスケープして指定せよ。
       -v 0 : 出力の各行において、右側の2列に、各分類の文字列としての最小値と最大値は出力しない。
       -R 0 ; 行末の\rを除去しない(Windows形式の改行に通常時は対処するが、-R0によりそれを解除。)

    利用例(実験例) : 
       cat somefile | venn 
           # somefile の行数と、異なる行の値の個数が分かる。
       venn <(seq 1 3)  <(seq 3 5)  <(seq 5 18) 
           # <( .. ) はプロセス置換なので、Unix-like のシェルでないと動かない可能性はある。
       venn -v0 <(saikoro) <(saikoro) <(saikoro)
           # saikoro はこの$0を作った著者がこの$0と共に提供される別のプログラム。

    開発メモ: 
      * 入力したファイル名を出力するようにしたい。(現状file1, file2..のような表示のみ)
      * 共通して計数対象としない値を -#で指定可能としたい。
      * 文字列の min と max 以外 *も* 出力できるようにしたい。
      * -1 指定時の実装は十分ではない。
 
=cut



( run in 1.828 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )