指定したディレクトリ以下のファイルの文字列をすべて置換するコマンドは?

投稿者: Anonymous

dir/text1.txt
dir/text2.txt
dir/subdir/text3.txt

のすべてのファイルに

PASSWORD = '12345'

という文字列が含まれているとして
dir/以下のすべてのファイルのこの文字列を

PASSWORD = 'abcde'

に置換するコマンドはどのようなものなんでしょうか?

解決

文字列の置換ということであれば sed が適しているでしょう。また下記の例では xargs を用いてで複数ファイルを処理するようにしています。find -exec との違いは、起動するプロセス数を通常は少なくでき、実行速度の向上が見込めることです。

find dir -type f | xargs sed -i -e "s/PASSWORD = '12345'/PASSWORD = 'abcde'/"
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *