Linuxを使っていて、複数のファイル内に散らばっている、ある文字列を一括して置換する方法。 特定の環境にあわせて、一気に特定のパラメータを書き換えたい場合とか。 $ find . -type f -name '*.html' -print0 | xargs -0 perl -i.bak -pe 's/from/to/g'findとperl+正規表現で。 上の例は、今いるカレントディレクトリ以下の全ての".html"ファイル内の"from"という文字列を全て"to"に置き換えるワンライナー。 変更が行われたファイルは全て".bak"という拡張子で元のファイルがバックアップされます。 # ちなみに、"-i"の後ろに拡張子を書かないと実行すると、バックアップは取られず書き換えられる。 ファイル名に空白文字が入る場合も考慮して、findに-print0オプションを付けて、xargs -0で受け取
![あるディレクトリ以下の複数ファイル内の文字列を一括で置換するワンライナー - 元RX-7乗りの適当な日々](https://cdn-ak-scissors.b.st-hatena.com/image/square/3aea19378d3ad5475acc031a63aea86ddf08c875/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.d.st-hatena.com%2Fdiary%2Frx7%2F2009-02-07.jpg)