2013年3月21日木曜日

開発環境

『初めての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 utf8;
use 5.016;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

my $name = 'test.txt';
open my $in_fh, "<", $name or die;
open my $out_fh, ">", "${name}.out" or die;

while(<$in_fh>){
    s/fred/Larry/gi;
    print $out_fh $_;
}
close $in_fh;
close $out_fh;

入出力結果(Terminal)

$ ./sample.pl
$ cat test.txt
A
a
kamimura's blog
http://sitekamimura.blogspot.com
KMI
http://www.mkamimura.com   
Fred
FRED
fred
frederick
Alfred
fred flintstone
Mr. Slate     
Mississippi
Bamm-Bamm    
wilama
barney
wilma and fred
fred and wilma
Wilma and Fred      
Fred and Wilma
wilma&fred
Mrs. Wilma Flintstone   
I saw Wilma yesterday
I, Wilma!
Z
llama
$ cat test.txt.out
A
a
kamimura's blog
http://sitekamimura.blogspot.com
KMI
http://www.mkamimura.com   
Larry
Larry
Larry
Larryerick
AlLarry
Larry flintstone
Mr. Slate     
Mississippi
Bamm-Bamm    
wilama
barney
wilma and Larry
Larry and wilma
Wilma and Larry      
Larry and Wilma
wilma&Larry
Mrs. Wilma Flintstone   
I saw Wilma yesterday
I, Wilma!
Z
llama
$

pythonの場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import re

name = 'test.txt'

with open(name, 'rb') as in_f:
    with open("{0}.out".format(name), 'wb') as out_f:
        for line in in_f:
            line = re.sub(b"fred", b"Larry", line, flags=re.I)
            out_f.write(line)

入出力結果(Terminal)

$ ./sample.py
$ cat test.txt.out
A
a
kamimura's blog
http://sitekamimura.blogspot.com
KMI
http://www.mkamimura.com   
Larry
Larry
Larry
Larryerick
AlLarry
Larry flintstone
Mr. Slate     
Mississippi
Bamm-Bamm    
wilama
barney
wilma and Larry
Larry and wilma
Wilma and Larry      
Larry and Wilma
wilma&Larry
Mrs. Wilma Flintstone   
I saw Wilma yesterday
I, Wilma!
Z
llama
$

0 コメント:

コメントを投稿