今日使ったのでメモ。カレントディレクトリ下のファイルで、「hoge」を含むファイル内の「hoge」を「fuga」に変更。
尚、svnでバージョン管理しているので、grepでは、svnファイルを除くように指定しています。
grep -rl account_separator . | grep -v svn |
xargs ruby -pi.bak -e '$_.gsub!(/hoge/,"fuga");'
解説
- pオプション
このオプションにより、全体が以下のループで囲まれます。
while gets ... end
このgetsの結果は、$_に格納されます。なので、各行に対してgsubを行っているというイメージです。
- iオプション
引数で指定されたファイルの内容を置き換えることを指定します。元のファイルは拡張子をつけた形で保存されます。