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 arg

    arg で指定される数を出力する。
    -C により、指定された列のみを取り出す、gawkのコマンド文を生成する。
    .. で範囲を指定できるし、9..1のように降順指定もできるが、この場合整数のみ扱う。

 オプション:

    -, char  : 数を出力するときに、区切り文字を改行文字から変更する。
               例: -, \t  でタブ文字を指定。
                   -,,   コンマ文字を指定。
                   -, '' 区切り文字は0文字、つまり、何もはさまないで数を並べて出力。(-, と '' の間は必ず空白を入れる。)

    -C  : gawkのコマンド文を出力する。どの列を出力するかは、argにより指定される。
    -S  : 指定された各列の列和を求めるgawkのコマンド文を出力する。
    -c  'str' : gawk文のコマンド文に 条件節を追加する。-Cまたは-Sと共に用いる。

    --help : この $0 のヘルプメッセージを出す。  perldoc -t $0 | cat でもほぼ同じ。
    --help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。

 使用例1 (単に数のリストを出力する場合)

     $0 5..10   # ->  5から10までの数を改行区切りで出力。
     $0 5,3 2,1  # -> 5,3,2,1を改行区切りで出力。空白区切りもコンマ区切りも同じ区切りと見なす。
     $0 10..5 -3  # -> 10,9,8,7,6,5 と -3 を出力。

 使用例2 (gawkコマンド文を出力する場合)

    `$0 -C 5..10, 1 ` file

      # バッククォーテーションで囲まれている部分が、gawk のコマンドに置き換わる。
      # この場合は、gawk -F\t -vOFS=\t {print$5,$6,$7,$8,$9,$10,$1} となる。

    `$0 -c'$1==10' -C 1..3 `
     $( $0 -c '$1==10' -C 1..3 )

       # 1列目が値10であるときのみ、1列目から3列目を出力する。
       # 条件節を表す文字列は必ず ''で囲うこと。シェルが$1などを解釈してしまうため
       # 条件節に  || や && を使うときは、前後に空白を入れないこと。

  使用例3 (列を選択して、その各列の和を求めるためのgawkコマンド文を生成)
     `$0 -S 3 `    # 3番目の列の和を求める


 注意点:
    引数に与えられた数は整数として扱われやすい。Perlの .. 演算子を使っているため。