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 |