$0 [-r] -(p|!) num1,num2,num3 ... < somefile

 指定された数に応じて、入力の複数の行をまとめたり、先頭から指定の数だけ抽出したりする。

  $0 -[r]p n1,n2,..,nk < somefile 
  $0 -[r]! n1,n2,..,nk < somefile 

オプション: 

-p : 入力行を逐次n1行、n2行、...、nk行を1行ずつにまとめる。
-! : 入力のx行目についてからnx個取り出す(nxが負なら末尾から-nx個を取り出す)。
-r : 引数に与えられた n1,n2,..,nk は無限に繰り返されると見なす。
-x : 入力が尽きるか、指定された数が尽きた場合でも、出力指定がある限り、空行を出力。(-pの場合のみ)

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

開発上のメモ : 
 * -x の場合について、動作をよく確認せよ。説明が正しいか。プログラムに一貫性があるか確認すること。
 * $0 -rp num で 入力データの行数が num の倍数で無いときに、出力の最後が 改行文字では無くなる。要対策。