サイトアイコン Lonely Mobiler

Linux で find と sed コマンドを使って複数ファイルを一括で置換する

複数のファイル内にある文字列を一括で置換する必要があったがコマンドをど忘れしたので調べなおした。

文字列を置換する場合、sed を使うのが一般的だろう。これと find, xargs を以下のように組み合わせる事で複数ファイルを同時に置換する事ができる。

$ find ./ -type f | xargs sed -i "s/before/after/g"

それぞれ以下のような意味がある。

しかし上記のコマンドは現存するファイルを直接書き換えてしまう。バックアップを取る場合は以下のように sed の -i 引数に文字列を追加する。

$ find ./ -type f | xargs sed -i.bak "s/before/after/g"

-i.bak とした場合、置換対象のファイル名末尾に .bak という名前をつけてバックアップを保存する事ができる。

Sponsored Link
モバイルバージョンを終了