開発環境
- 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 コメント:
コメントを投稿