Rubyワンライナーによる一括置換
タグ: ruby / 初版公開: 2013-09-02

sedでやれという話ではあるけれど、最近Rubyのワンライナーに凝っているので書いた。 以下の1行でtest.txt中のfooをbarに置換して上書きする。

ruby -i -pe '$_.gsub!("foo", "bar")' test.txt

Rubyワンライナーでは頻出の、以下3つのオプションの合わせ技になっている。

  • -i インプレース編集モード。ファイルの内容を評価結果で置き換える。
  • -p 行単位で処理を行い行毎に変数$_の内容を出力する。
  • -e コマンドラインからスクリプトを指定する。