開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
その他参考書籍
2.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';
use IO::Tee;
my %names = ();
while(<>){
next unless /^(\w+):/;
my $name = lc $1;
my $fh = $names{$name} ||= IO::File->new(">$name.info") or die $!;
print $fh $_;
}
入出力結果(Terminal)
$ ./sample.pl log_file.txt $ ls *.info gilligan.info lovey.info monkeyman.info skipper.info ginger.info maryann.info professor.info thurston.info $ cat gilligan.info Gilligan: 1 coconut Gilligan: 1 banana Gilligan: 1 banana Gilligan: 1 papaya Gilligan: 1 kiwifruit Gilligan: 2 mangoes Gilligan: 1 kiwifruit Gilligan: 2 kiwifruits Gilligan: 2 mangoes Gilligan: 1 mango Gilligan: 1 kiwifruit Gilligan: 1 kiwifruit Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 2 papayas Gilligan: 1 mango Gilligan: 3 bananas Gilligan: 1 kiwifruit Gilligan: 1 papaya Gilligan: 1 kiwifruit Gilligan: 1 kiwifruit Gilligan: 1 banana Gilligan: 2 bananas Gilligan: 2 kiwifruits Gilligan: 4 coconuts Gilligan: 3 mangoes Gilligan: 2 coconuts Gilligan: 2 kiwifruits Gilligan: 1 kiwifruit Gilligan: 1 mango Gilligan: 1 coconut Gilligan: 1 coconut $
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import sys, re
names = {}
for line in open(sys.argv[1]):
matched = re.search(r"^(\w+):", line)
name = matched.group(1)
if not name in names.keys():
f = open(name.lower() + ".info", 'a')
f.write(line)
names[name] = f
else:
names[name].write(line)
for f in names.values():
f.close()
入出力結果(Terminal)
$ rm *.info $ ./sample.py log_file.txt $ ls *.info gilligan.info lovey.info monkeyman.info skipper.info ginger.info maryann.info professor.info thurston.info $ cat gilligan.info Gilligan: 1 coconut Gilligan: 1 banana Gilligan: 1 banana Gilligan: 1 papaya Gilligan: 1 kiwifruit Gilligan: 2 mangoes Gilligan: 1 kiwifruit Gilligan: 2 kiwifruits Gilligan: 2 mangoes Gilligan: 1 mango Gilligan: 1 kiwifruit Gilligan: 1 kiwifruit Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 1 coconut Gilligan: 2 papayas Gilligan: 1 mango Gilligan: 3 bananas Gilligan: 1 kiwifruit Gilligan: 1 papaya Gilligan: 1 kiwifruit Gilligan: 1 kiwifruit Gilligan: 1 banana Gilligan: 2 bananas Gilligan: 2 kiwifruits Gilligan: 4 coconuts Gilligan: 3 mangoes Gilligan: 2 coconuts Gilligan: 2 kiwifruits Gilligan: 1 kiwifruit Gilligan: 1 mango Gilligan: 1 coconut Gilligan: 1 coconut $
0 コメント:
コメントを投稿