開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc., Emacs(Text Editor)
- プログラミング言語: Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の9章(正規表現によるテキスト処理)の9.6(練習問題)2を解いてみる。
その他参考書籍
2.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
my $filename = $ARGV[0];
die unless defined $filename;
my $out = $filename;
$out =~ s/(\.\w+)?$/.out/;
open my $in_fh, "<", $filename or die "cant't open $filename: $!";
open my $out_fh, ">", $out or die "can't open $out: $!";
while (<$in_fh>) {
s/fred/Larry/ig;
print $out_fh $_;
}
入出力結果(Terminal)
$ cat tmp.txt Manfred Mann fredfred fredFred FREDFRED Larry $ ./sample.pl tmp.txt $ cat tmp.out ManLarry Mann LarryLarry LarryLarry LarryLarry Larry $
ちなみにpython3.3の場合。
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import re, sys
try:
filename = sys.argv[1]
out = re.sub("(\.\w+)?$", ".out", filename)
with open(filename) as in_f:
with open(out, "w") as out_f:
out_f.write(re.sub("fred", "Larry", in_f.read(), flags=re.I))
except Exception as err:
print(type(err), err)
入出力結果(Terminal)
$ cat tmp.txt Manfred Mann fredfred fredFred FREDFRED Larry $ ./sample.py tmp.txt $ cat tmp.out ManLarry Mann LarryLarry LarryLarry LarryLarry Larry $
0 コメント:
コメントを投稿