Memoize | 
					
						BasicWerk
						 
						EC Support
						 
						Technique
						 
						Facebook
						 
						 | 
				
20140604225650_perl_subst_script | 
| 
 あんまりスマートなやり方ではないけれど、文字列置換スクリプト。 subst 
 
#! /usr/bin/perl
use warnings;
use strict;
use Getopt::Long;
 
my $useage = 0;
my $i = 0;
my $g = 0;
GetOptions(
    'u' => \$useage,
    'i' => \$i,
    'g' => \$g,
);
 
if ($useage){
    print "subst pattern replacement file\n";
    exit;
}
 
my ($pattern, $replacement, $file) = @ARGV;
my $str = "";
open my $in, "<", $file;
while (my $line = <$in>){
    $str .= $line;
}
close $in;
 
if ($i and $g){
    $str =~ s/$pattern/$replacement/ig;
}
elsif ($i){
    $str =~ s/$pattern/$replacement/i;
}
elsif ($g){
    $str =~ s/$pattern/$replacement/g;
}
else {
    $str =~ s/$pattern/$replacement/;
}
 
print $str;
 
 マルチラインモード、シングルラインモードを使いたいときは 
 subst '(?s)(?m)\A.+?aaa' 'AAA' file 
 みたいに使えばいいかなと。 
 スクリプトの中に /ms をベタ書きしちゃうのもありだと思う。 
  | 
| © Shin Nakamura/BasicWerk 2014 |