開発環境
- 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';
my %total_bytes;
my $all = "all";
while (<>){
next if /^#/;
my ($source, $destination, $bytes) = split;
$total_bytes{$source}{$destination} += $bytes;
$total_bytes{$source}{$all} += $bytes;
}
for my $source (sort {
$total_bytes{$b}{$all} <=> $total_bytes{$a}{$all}
} keys %total_bytes){
printf "%-34s%10d bytes\n",
$source, $total_bytes{$source}{$all};
for my $destination ( sort {
$total_bytes{$source}{$b} <=> $total_bytes{$source}{$a}
} keys %{ $total_bytes{$source} }) {
next if $destination eq $all;
printf " => %-25s" .
" %10d bytes\n",
$destination, $total_bytes{$source}{$destination};
}
print "\n";
}
入出力結果(Terminal)
$ ./sample.pl coconet.dat
lovey.howell.hut 1139833 bytes
=> laser3.copyroom.hut 212456 bytes
=> professor.hut 175065 bytes
=> ginger.girl.hut 158084 bytes
=> maryann.girl.hut 155080 bytes
=> thurston.howell.hut 141790 bytes
=> skipper.crew.hut 119766 bytes
=> fileserver.copyroom.hut 98926 bytes
=> gilligan.crew.hut 78666 bytes
gilligan.crew.hut 983860 bytes
=> laser3.copyroom.hut 240327 bytes
=> maryann.girl.hut 145361 bytes
=> skipper.crew.hut 118827 bytes
=> lovey.howell.hut 107152 bytes
=> professor.hut 101219 bytes
=> thurston.howell.hut 97398 bytes
=> fileserver.copyroom.hut 90369 bytes
=> ginger.girl.hut 83207 bytes
ginger.girl.hut 968495 bytes
=> laser3.copyroom.hut 179803 bytes
=> lovey.howell.hut 170948 bytes
=> maryann.girl.hut 152634 bytes
=> professor.hut 110300 bytes
=> thurston.howell.hut 105940 bytes
=> skipper.crew.hut 103592 bytes
=> fileserver.copyroom.hut 79551 bytes
=> gilligan.crew.hut 65727 bytes
maryann.girl.hut 846806 bytes
=> laser3.copyroom.hut 161843 bytes
=> lovey.howell.hut 145271 bytes
=> ginger.girl.hut 126902 bytes
=> thurston.howell.hut 123456 bytes
=> professor.hut 109526 bytes
=> skipper.crew.hut 75155 bytes
=> fileserver.copyroom.hut 63807 bytes
=> gilligan.crew.hut 40846 bytes
professor.hut 821931 bytes
=> laser3.copyroom.hut 172882 bytes
=> lovey.howell.hut 123396 bytes
=> ginger.girl.hut 113685 bytes
=> maryann.girl.hut 94786 bytes
=> thurston.howell.hut 94363 bytes
=> skipper.crew.hut 86642 bytes
=> gilligan.crew.hut 82825 bytes
=> fileserver.copyroom.hut 53352 bytes
fileserver.copyroom.hut 770174 bytes
=> lovey.howell.hut 160986 bytes
=> professor.hut 146975 bytes
=> ginger.girl.hut 103478 bytes
=> maryann.girl.hut 99261 bytes
=> skipper.crew.hut 88261 bytes
=> thurston.howell.hut 86084 bytes
=> gilligan.crew.hut 85129 bytes
thurston.howell.hut 619077 bytes
=> laser3.copyroom.hut 129628 bytes
=> maryann.girl.hut 105137 bytes
=> lovey.howell.hut 82972 bytes
=> professor.hut 78576 bytes
=> skipper.crew.hut 66538 bytes
=> ginger.girl.hut 58580 bytes
=> gilligan.crew.hut 56658 bytes
=> fileserver.copyroom.hut 40988 bytes
skipper.crew.hut 481951 bytes
=> professor.hut 108779 bytes
=> laser3.copyroom.hut 89505 bytes
=> ginger.girl.hut 77621 bytes
=> maryann.girl.hut 71880 bytes
=> lovey.howell.hut 43427 bytes
=> thurston.howell.hut 41726 bytes
=> gilligan.crew.hut 29142 bytes
=> fileserver.copyroom.hut 19871 bytes
$
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-
import sys, re
total_bytes = {}
for line in open(sys.argv[1]):
if re.search(r"^#", line): continue
source, destination, bytes = line.split()
bytes = int(bytes)
if source in total_bytes.keys():
if destination in total_bytes[source].keys():
total_bytes[source][destination] += bytes
else:
total_bytes[source][destination] = bytes
total_bytes[source]["all"] += bytes
else:
total_bytes[source] = {}
total_bytes[source][destination] = bytes
total_bytes[source]["all"] = bytes
for source in sorted(total_bytes.keys(), key=lambda x: -total_bytes[x]["all"]):
print("{0:34s}{1:10d} bytes".format(
source, total_bytes[source]["all"]
));
for destination in sorted( total_bytes[source].keys(),
key=lambda x: -total_bytes[source][x]):
if destination == "all": continue
print(" => {0:25} {1:10} bytes".format(
destination, total_bytes[source][destination]
));
print()
入出力結果(Terminal)
$ ./sample.py coconet.dat
lovey.howell.hut 1139833 bytes
=> laser3.copyroom.hut 212456 bytes
=> professor.hut 175065 bytes
=> ginger.girl.hut 158084 bytes
=> maryann.girl.hut 155080 bytes
=> thurston.howell.hut 141790 bytes
=> skipper.crew.hut 119766 bytes
=> fileserver.copyroom.hut 98926 bytes
=> gilligan.crew.hut 78666 bytes
gilligan.crew.hut 983860 bytes
=> laser3.copyroom.hut 240327 bytes
=> maryann.girl.hut 145361 bytes
=> skipper.crew.hut 118827 bytes
=> lovey.howell.hut 107152 bytes
=> professor.hut 101219 bytes
=> thurston.howell.hut 97398 bytes
=> fileserver.copyroom.hut 90369 bytes
=> ginger.girl.hut 83207 bytes
ginger.girl.hut 968495 bytes
=> laser3.copyroom.hut 179803 bytes
=> lovey.howell.hut 170948 bytes
=> maryann.girl.hut 152634 bytes
=> professor.hut 110300 bytes
=> thurston.howell.hut 105940 bytes
=> skipper.crew.hut 103592 bytes
=> fileserver.copyroom.hut 79551 bytes
=> gilligan.crew.hut 65727 bytes
maryann.girl.hut 846806 bytes
=> laser3.copyroom.hut 161843 bytes
=> lovey.howell.hut 145271 bytes
=> ginger.girl.hut 126902 bytes
=> thurston.howell.hut 123456 bytes
=> professor.hut 109526 bytes
=> skipper.crew.hut 75155 bytes
=> fileserver.copyroom.hut 63807 bytes
=> gilligan.crew.hut 40846 bytes
professor.hut 821931 bytes
=> laser3.copyroom.hut 172882 bytes
=> lovey.howell.hut 123396 bytes
=> ginger.girl.hut 113685 bytes
=> maryann.girl.hut 94786 bytes
=> thurston.howell.hut 94363 bytes
=> skipper.crew.hut 86642 bytes
=> gilligan.crew.hut 82825 bytes
=> fileserver.copyroom.hut 53352 bytes
fileserver.copyroom.hut 770174 bytes
=> lovey.howell.hut 160986 bytes
=> professor.hut 146975 bytes
=> ginger.girl.hut 103478 bytes
=> maryann.girl.hut 99261 bytes
=> skipper.crew.hut 88261 bytes
=> thurston.howell.hut 86084 bytes
=> gilligan.crew.hut 85129 bytes
thurston.howell.hut 619077 bytes
=> laser3.copyroom.hut 129628 bytes
=> maryann.girl.hut 105137 bytes
=> lovey.howell.hut 82972 bytes
=> professor.hut 78576 bytes
=> skipper.crew.hut 66538 bytes
=> ginger.girl.hut 58580 bytes
=> gilligan.crew.hut 56658 bytes
=> fileserver.copyroom.hut 40988 bytes
skipper.crew.hut 481951 bytes
=> professor.hut 108779 bytes
=> laser3.copyroom.hut 89505 bytes
=> ginger.girl.hut 77621 bytes
=> maryann.girl.hut 71880 bytes
=> lovey.howell.hut 43427 bytes
=> thurston.howell.hut 41726 bytes
=> gilligan.crew.hut 29142 bytes
=> fileserver.copyroom.hut 19871 bytes
$
0 コメント:
コメントを投稿