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