ファイル内文字列の置換
-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