Ruby のコマンドラインオプションは、Perl のそれと似ている。 しかし、俺は Perl のオプションも良く知らないので、 これを機会に調べてみた。
Warning (警告) の略と覚えるといい。 問題となりそうな個所を逐一表示する。
フィルタープログラムで便利。ARGF を使えば、 引数で与えられたファイルを上書きすることができる。 ここで ARGF とは引数または標準入力によって作られる仮想のファイルオブジェクトである。 例:
while line = ARGF.gets
print "いわゆるひとつの#{line}"
end
-iのあとに拡張子があれば、 その拡張子でバックアップを作ったあとでオリジナルを上書きする。
ちょっと気になったのは、標準添付されている getopts ライブラリと一緒に使ったときに、 オプション (例:-l)を使ったときにオプションと認識されず、 -l というファイルとみなされてしまう。 これは、getopts ライブラリの限界なのか。(2003-09-26)
後記:上の話はウソだった。getopts ライブラリと一緒に使っても、問題なくARGFは使えた。 (2003-09-30)
sed -n や awk のように while gets ... end で囲まれているように動作する
-n とほぼ同様。各ループの最後に変数 $_ を出力する点で -n と異なる。
まりんきょ学問所 > Rubyの浮き輪 > Ruby コマンドラインオプション