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


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

のすべてのファイルに

`PASSWORD = '12345'`

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

`PASSWORD = 'abcde'`

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




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

[code]

    find dir -type f | xargs sed -i -e "s/PASSWORD = '12345'/PASSWORD = 'abcde'/"
    
[/code]




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

[code]

    find dir -type f | xargs sed -i -e "s/PASSWORD = '12345'/PASSWORD = 'abcde'/"
    
[/code]

