空行の連続を1つにまとめたいと
お友達から相談された。
ラクダ(赤)本には
perl -ne 'print unless $seen{$_}++' 「ファイル名」
と美しくもメモリ大名なワンライナーがのってましたが、もうちょっと省エネな例;
#!/usr/local/bin/perl -w
foreach $i (@ARGV){
open(IN, "$i") || die "can't open $1 \n";
open(OUT, ">$i.new")|| die "can't open $1.new \n";
while(<IN>){
if ($m ne $_) {
print OUT $m;
$m = $_;
}
print OUT $m if(eof);
}
close(IN);
close(OUT);
}