Linuxでディレクトリ配下のファイル内容を一括置換する最も簡単な方法
しばしば忘れるので、自身の備忘録として…
ファイルの拡張子を指定しない場合
- 対象の確認
$ find ./ -type f | xargs grep "foo"
- 置換実行
$ find ./ -type f | xargs sed -i -e "s/foo/bar/g"
- 置換後の確認
$ find ./ -type f | xargs grep "bar"
ファイルの拡張子を指定する場合
- 対象の確認
$ find ./ -type f -name "*.php" | xargs grep "foo"
- 置換実行
$ find ./ -type f -name "*.php" | xargs sed -i -e "s/foo/bar/g"
- 置換後の確認
$ find ./ -type f -name "*.php" | xargs grep "bar"
sed のオプションについて
-i オプション
$ find ./ -type f | xargs grep "foo"
$ find ./ -type f | xargs sed -i -e "s/foo/bar/g"
$ find ./ -type f | xargs grep "bar"
- 対象の確認
$ find ./ -type f -name "*.php" | xargs grep "foo"
- 置換実行
$ find ./ -type f -name "*.php" | xargs sed -i -e "s/foo/bar/g"
- 置換後の確認
$ find ./ -type f -name "*.php" | xargs grep "bar"
sed のオプションについて
-i オプション
ファイルを直接上書きする。
これを付けないと、ディストリビューションによりバックアップファイルが自動作成されることがあります。
バックアップを明示的に指定する場合は -i.bak
のように指定。
-e オプション
–expression=スクリプトコマンド
のこと。
基本的には、 "s/foo/bar/g" や "s/foo/d" になります。
Fin ❤︎
Author And Source
この問題について(Linuxでディレクトリ配下のファイル内容を一括置換する最も簡単な方法), 我々は、より多くの情報をここで見つけました https://qiita.com/kapibarasensei/items/4c2599264c1c1dc7fcfe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .