HTMLファイルを一括で変更する2(perl編)
- 2006.08.15
- Webマスター
perlについてのメモ。
一括変更のときに、コマンドオプションがどんな働きをするかを参照できるようにメモしておく。
■-eでperlの命令をそのまま実行できる
$perl -e ' print "Hello!?n" '
-pでループと同じ働きを繰り返しさせる。
$perl -pe 1 index.html
-eと合わせて、コマンドラインで指定されたファイルごとに命令を実行。
上記の1はperlの命令のreturn 1;と同じ命令で、index.htmlの中身を1行ずつ繰り返しプリントする。
このループの働きと同じ。
LINE: while (<>) { # ここのコマンド } continue { print or die "-p destination: $!?n" ; }
■index.htmlの中の白で指定している色をグレーに変更する
ファイル名は別名で保存する必要があるので、index_new.htmlとする。
$ perl -pe 's/#FFFFFF/#333333/g' index.html > index_new.html
たくさんファイルがあると、上記方法だとキーボードをたたく指が疲れるので、-iを組み合わせて使う。
$ perl -pi -e 's/#FFFFFF/#333333/g' index.html
ありがたいことに複数ファイルも対応できるので、
$ perl -pi -e 's/#FFFFFF/#333333/g' *.html
心配だからバックアップをとりながら、というときは、
$ perl -pi.BAK -e 's/#FFFFFF/#333333/g' *.html
ちょっと待てよ、#FFFFFFじゃなくて、#ffffffで指定してるのもあったというときは、iでマッチングさせる。
$ perl -pi.BAK -e 's/#FFFFFF/#333333/i' *.html
カレントディレクトリだけじゃなくて、htmlの入った全部のディレクトリを一括で変更したいときはfindで見つけたファイルをperlに送り込む。xagsを使えば橋渡しをしてくれる。 最初に確認。
$ find /home/myname/public_html -name "*.html"
次に本番実行。
$ find /home/myname/public_html -name "*.html" | xargs perl -pi -e 's/#FFFFFF/#333333/g'
-
前の記事
Apache .htaccessでアクセス制限 2006.08.14
-
次の記事
ログファイルをまとめて解凍 2006.08.15