Fujimi_3_Haizara-Cho(Rinzo_Shimizu)

2005-02-09

正規表現による大量のファイルの文字列の一括置換

「編集室/雑記帳」の日付別検索スクリプトを書いていて、結局HTMLのソースがある程度ぐちゃぐちゃ(^^)なので、完全なスクリプトを書けないことがわかった(2.13追記:その後完全なスクリプトが書けた^^)。HTMLの文法は大文字・小文字の区別をしないとか、「これがユニークな区切りの印だ」と思っても同じような印の文字列があったりする。
とりあえずCGIで下の10桁ぐらいの数字を見つけて、日本時間にして表示するところぐらいまではうまくいった。さらにOLBCKで作ってある、過去ログのHTMLファイルに飛べるようにもできた。
ところで僕はほとんど使う機会はないと思うけど、たとえば、「100個のHTMLファイルの背景色を全部変更してくれ」というような要求には下のようなperlのスクリプトで一瞬にして変更することができる。
下位のディレクトリ「kako」にあるファイルの目次ファイル「dir.dat」を利用して、全部文字列を置換して、同じファイル名で「kime」というディレクトリに入れる。
下のような誤植は通常ありえないが、このような正規表現を使って置換する。
-----------------------------
open IN, "dir.dat";
@hen = <IN>;
foreach $hen(@hen){
open FILE, "\./kako/$hen";
open OUT, ">\./kime/$hen";
@kan = <FILE>;
while($iino = shift(@kan)){
$iino =~ s/吸穀山/吸殻山/g;
$iino =~ s/南歯鳥羽/南波止場/g;
print OUT $iino;
}
}


posted at 22:58:17 on 2005-02-09 by belle - Category: General

Comments

No comments yet

Add Comments

:

:
: