ソースコード中の特定の文字列を一気に置換するワンライナー

例えば、あるディレクトリ内の全phpファイルの'user_no'を一気に'user_id'に置換したいときはこのようにします。
対象を確認
find /path/to/dir -name '*.php' -type f | xargs perl -n -e "print if m#'user_no'#i"
置換
(事前にバックアップを取るか、バージョン管理ツールに登録しておきましょう
find app -name '*.php' -type f | xargs perl -pi -e "s#'user_no'#'user_id'#i" 
置換前

$this->get('user_no');

↓

置換後

$this->get('user_id');
ここではiオプションをつけることで大文字・小文字を区別せずに置換しています。 (i = case insensitive)
(つまり、'user_NO'や'USER_NO'なども'user_id'に置換します。)

大文字・小文字を区別して、'user_no'だけを置換したい場合は、iオプションなしで実行してください。
カテゴリ: