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 |