複数ディレクトリ内の検索(grep)・置換(find+perl)

WEBサーバーのファイル(htmlやPHPファイル)が多くなってくると、ファイル内の文字列の置換えが面倒になってきます。

そこで、Linux/Unixコマンドを使い直接ファイルを検索・置換し保存します。

まず、sshでサーバーにログインします。

複数ディレクトリ内のファイル内の文字列の検索

grep "hoge" */*

検索だけなら上記のようにgrepでよいのですが、置換は少しややこしいです。sedでも置換はできるのですが、保存まで出来ない(?)ので、findとperlを組み合わせます。

find */* | xargs perl -pi -e 's/old/new/g'

あるいは、

find . -type f -exec perl -pi -e 's/old/new/g' {} \;

あくまで実行は自己責任で。操作の前にバックアップを取っておくことをオススメします。

カテゴリー: UNIX/Linux パーマリンク

コメントを残す

メールアドレスが公開されることはありません。