SSH複数のファイルから特定の文字列を置き換えする

サーバー移行で複数のファイルに記述されていたパスを変更する必要がありました。
SSHで接続して一括置き換えができたので、かなり助かりました。
 
$ cd /example/dir

例)「TARGET」を「REPLACE」に変更
$ grep -rl "TARGET" ./ | xargs perl -i -pe "s/TARGET/REPLACE/g"

この時、Permission deniedが出て書き換えができない場合はsudoをつける。
$ grep -rl "TARGET" ./ | sudo xargs perl -i -pe "s/TARGET/REPLACE/g"

検索文字列・置き換え文字列に「/」を含む場合はエスケープする必要があります。
例)「/pass」を削除
$ grep -rl "\/pass" ./ | xargs perl -i -pe "s/\/pass//g"


参考にさせていただきました
SSHで複数ファイルから文字列を検索・置換する方法
Comments

コメントする