$0 [-z] [-B 0] [-A 0] [-p 1] [-f 1] [-e 2]
大きなテキストファイルの全体を把握しやすくするため、
最初と最後の数行と途中の 1, 10, 100, 1000 .. 行目などを出力する。どう出力するかは、オプションで指定可能。
オプション: -b N :次の説明の 10,100,1000,.. の数の部分を変更して N のべき乗になる。さらに「」内の数の内N以下のみに限定。(base) -p 1 : キリの良い数を 1, 10, 100, 1000 .. 行に限定する。(-bの設定で別の数のべき乗に変更可能。) -p 2 : キリの良い数を 1, 2, 4, 8, 10, 20, 40, 80 .. と、「1,2,4,8」の1倍,10倍,100倍.. とする。 -p 7 : キリの良い数を 「1, 1.5, 2, 3, 5, 7 」の1倍,10倍,100倍.. とする。 -p 8 : キリの良い数を 「1, 1.5, 2, 3, 5, 8 」の1倍,10倍,100倍.. とする。 -p 9 : キリの良い数を 上1桁以外が全て0の数と見なす(「1,2,3,4,5,6,7,8,9」の1倍,10倍,100倍..)。 -p 0 : 上記の動作をしない。次の -e で指定される部分のみを出力。 -e num : 入力全体の最初と最後も num 行出力するようにする。未指定であれば num = 2。0も指定可能。 (edge) -f num : 開始行の指定 (from)
-: [0|colorname] : 行番号のみ色を着色する指定。blue や "bold yellow"などを指定可能。0 を指定すると行番号を出力しない。
-B num きりの良い数の何行前から表示するか。連続表示に用いる。(grepコマンドの -B と同様な動作)
-A num きりの良い数の何行後まで表示するか。連続表示に用いる。(grepコマンドの -A と同様な動作)
-2 0 : 「何行読んで何行出力したか」を標準エラー出力に出しているのを抑制する。
-t : 出力時の時刻情報を 行頭に付加。
-z : 入力が、gzipの形式で圧縮されていることを指定する。
--help : この $0 のヘルプメッセージを出す。 perldoc -t $0 | cat でもほぼ同じ。
--help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。
開発上のメモ:
* キーボードからの入力待ちの場合は、-tで検出して、ALRMシグナルで受付を促すようにしたい。
* -: [colorName|0] で行番号の出力を制御したい。-g と -q の機能を一つにすることになる。
* -bと-pを統合したい。-b n1,n2 として n1が基数、n2が既に-pで指定された通りにしたい。
* 複数のファイルの中身を出すときに、ファイル名に下線を引くようにしたが、下線にするにもオプションで変更可能にしたいかも。
* 時刻情報をもっと正確に出したいかも。Time::HiResを使って。コアモジュールかどうかも確かめた上で実装したい。