#!/usr/bin/perl -w # # fnr --crb3 15nov01 # # die "usage: fnr [-frulefile][-frulefile] infile infile ...\n ..where a rulefile contains find-and-replace pairs as 'find => replace'\n" unless(defined($ARGV[0])); undef @infile; $samename=1; while(defined($ARGV[0])){ $arg=shift(@ARGV); if($arg =~ /^\-f/){ $arg =~ s/^\-f\s*//; if($arg eq ""){ $arg=shift(@ARGV); } &loadrules($arg); }else{ push(@infile,$arg); } } while(defined($infile = shift(@infile))){ $outfile=$infile; $outfile .= ".^_^"; open(IFIL,"<$infile") or die "can't open infile $infile\n"; open(OFIL,">$outfile") or die "can't make outfile $outfile\n"; while(defined($inline=)){ foreach $find (keys %fnr){ $inline =~ s/$find/$fnr{$find}/g; } print OFIL $inline; } close(IFIL); close(OFIL); if($samename){ unlink "$infile~"; rename($infile, "$infile~"); rename($outfile, $infile); } } sub loadrules { my $infile=shift(@_); open(RFIL,"<$infile") or die "can't find f&r file $infile\n"; while(defined($inline=)){ chomp $inline; $inline =~ s/\r$//; next if $inline =~ /^\s*\#/; next unless index($inline,'=>')>-1; ($key,$arg)=split('=>',$inline,2); next unless(defined($key) and defined($arg)); $key =~ s/\s+$//; $arg =~ s/s+$//; $key =~ s/^\s+//; $arg =~ s/^\s+//; $fnr{$key}=$arg; } close(RFIL); } sub loadDEFrules { while(defined($inline=)){ chomp $inline; $inline =~ s/\r$//; next if $inline =~ /^\s*\#/; next unless index($inline,'=>')>-1; ($key,$arg)=split('=>',$inline,2); next unless(defined($key) and defined($arg)); $key =~ s/\s+$//; $arg =~ s/s+$//; $key =~ s/^\s+//; $arg =~ s/^\s+//; $fnr{$key}=$arg; } } __END__ # # hash-first-thing marks a comment line # find => replace # Nermia=>Nerima Nodaka=>Nodoka Nadaka=>Nodoka