bashなんかだと
sed -i "s/hoge/ukeke/g" test.txt
なんて方法でファイル内の文字置換を行える。
しかし、今回はPerl…
systemコマンドでsedを実行してやればなんとなく出来そうな気がするものの、スマートじゃないので別の方法を考える。
my $filename = ["test.txt"]; my $dat1 = "hoge"; # 置換対象文字列 my $dat2 = "ukeke"; # 置換するの文字列 $^I = ".bak"; # 置換するファイルの.bakを付けてバックアップファイルを作成してくれる @ARGV = @$filename; while (<>) { s/$dat1/$dat2/g; print; }
これで、test.txtのhogeはukekeに置換されたはず。
ファイルをオープンして読込む必要が無いからか、実行スピードもそれなり(^^;)
全てがこれで対応できるわけではないので、状況に合わせて利用する