#!/usr/bin/perl #replace_selected =memo パターン1 置き換え1 パターン2 置き換え2 テキスト ……… …… … =cut use strict; use Encode qw(from_to); my $inText = $ARGV[1]; &from_to( $inText, 'utf-8', 'euc-jp' ); #'shiftjis' 'utf-8' my @lines = split( /\r/, $inText ); my @source; my @replace; while( $lines[0] ne '' ) { my $source = shift @lines; my $replace = shift @lines; # /をエスケープする $source =~ s!(/)!\\$1!g; $replace =~ s!(/)!\\$1!g; # $をエスケープする $source =~ s/(\$)(.)/\\$1$2/g; # \をエスケープする #$replace =~ s/(\\)/\\$1/g; push( @source, $source ); push( @replace, $replace ); } shift @lines; #空行を取り除く while( my $source = shift @source ) { my $replace = shift @replace; eval( 'foreach( @lines )' . "{ s/$source/$replace/gi; }" ); } my $outText = join( "\r", @lines ); #&from_to( $outText, 'euc-jp', 'shiftjis' ); print $outText;