こんにちは、tsuka05です。ワンライナー書いていますか?
今日はRubyでワンライナーを書くときによく使うコマンドラインオプションをいくつかご紹介します。
-e
コマンドラインで直接スクリプトを指定します
ruby -e 'puts "Hello, World."'
Hello, World.
-n
ファイルや標準入力から1行ずつ読み込んで、与えられたスクリプトをループします。 読み込まれた内容は $_ に格納されます。
ruby -n -e 'puts $_' *.txt
マッチしたファイルの内容を出力します
-p
-nに加えて、各ループの最後に $_ の内容を出力します。
ruby -p -e '$_.gsub!("foo", "bar")' *.txt
マッチしたファイルの内容を、fooをbarに置き換えて出力します
-i
対象となるファイルを書き換えます。拡張子を指定すると、元のファイルは拡張子をつけた名前で残ります。
ruby -p -i.bak -e '$_.gsub!("foo", "bar")' *.txt
*.txtの内容の、fooをbarに書き換えます。元ファイルの内容は、*.txt.bakに残ります。
それでは、良いワンライナーライフを!