以下のように、replace.conf のハッシュ変数に置換前・置換後の文字列を書いておき、replace.pl を実行する。
replace.conf の内容
#/usr/bin/perl -w
use strict;
our $HOME_DIR = '/home/youraccount';
our $DIR = "$HOME_DIR/targetdirectory";
our %WORDS = (
'ブラウザー' # 置換前の文字列
=> 'ブラウザ', # 置換後の文字列
'FTP' # 置換前の文字列
=> 'FTP', # 置換後の文字列
# ... 以下、
'置換前の文字列1'
=> '置換後の文字列1',
'置換前の文字列2'
=> '置換後の文字列2'
# ... という形で追加していけばよい。
);
1;
replace.pl の内容
#!/usr/bin/perl
require './jcode.pl';
require './replace.conf';
opendir(DIR, $DIR) or die "Couldn't open $DIR directory.";
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
if(!(-d $file) && $file ne '.' && $file ne '..' && $file ne __FILE__) {
print "$file\n";
replace($file);
}
}
sub replace {
my ($file) = @_;
open(IN, "$DIR/$file") or die die "Couldn't open $file.";
my @lines = <IN>;
close(IN);
open(OUT, ">$DIR/$file.tmp") or die die "Couldn't open $file.";
foreach my $line (@lines) {
&jcode'h2z_sjis(\$line);
while(my($before, $after) = each %WORDS) {
if($line =~ /$before/) {
$line =~ s/$before/$after/g;
}
}
print OUT $line;
}
close(OUT);
rename("$DIR/$file.tmp", "$DIR/$file");
unlink("$DIR/$file.tmp");
}
1;
トラックバック URL:
https://perltips.twinkle.cc/trackback/78