ファイル内文字列の置換


 -i -p -eオプションを使用します。
# カレントディレクトリにある拡張子.htmlというファイル中のfromをformに置換する
# UNIX系
perl -i -p -e 's/from/form/g;' *.html
 オプションはそれぞれ以下の働きをします。
-i ファイルを修正する。拡張子の指定があれば、その拡張子でバックアップを取る。
-p 1行ずつ処理し、結果を出力する。
-e コマンドライン上でスクリプトを指定する。

 -pによってファイルが処理され(処理内容は-eで指定)、出力されます。そしてその結果が-iによって元のファイルに出力されます。

 ただしWin98+Active Perl v 5.005_03でやってみたところ、以下のような修正が必要でした。
・-iに拡張子を指定する。
・-eではシングルクォートではなくダブルクォートを使う。
・ファイル名にワイルドカード(*や?)は使えない。
# index.htmlというファイル中のfromをformに置換する
# (オリジナルのファイルがindex.html.bakという名前で作成される)
# Win98+Active Perl
perl -i.bak -p -e "s/from/form/g;" index.html

関連項目

s置換演算子