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