2013年2月2日土曜日

開発環境

『続・初めてのPerl 改訂版』(Randal L. Schwartz, brian d foy, Tom Phoenix 著、伊藤 直也田中 慎司吉川 英興 監訳、株式会社ロングテール/長尾 高弘 訳、オライリー・ジャパン、2006年、ISBN4-87311-305-9)の8章(リファレンスを使った実践的なテクニック), 9.9(練習問題)1を解いてみる。

その他参考書籍

1.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

my @sorted = 
    map $_->[0],
    sort { $a->[1] <=> $b->[1] }
    map [$_, -s $_],
    glob "/bin/*";

for (@sorted) {
    printf "%-20s %10d\n", $_, -s $_;
}

入出力結果(Terminal)

$ ./sample.pl
/bin/sync                 34288
/bin/wait4path            34576
/bin/echo                 34608
/bin/rmdir                34624
/bin/domainname           34672
/bin/sleep                34688
/bin/pwd                  34704
/bin/hostname             34720
/bin/mkdir                35072
/bin/kill                 35088
/bin/link                 39600
/bin/ln                   39600
/bin/[                    43120
/bin/test                 43120
/bin/expr                 43808
/bin/cat                  44192
/bin/rm                   44528
/bin/unlink               44528
/bin/mv                   44848
/bin/df                   52432
/bin/date                 57408
/bin/cp                   57808
/bin/dd                   61216
/bin/chmod                62768
/bin/stty                 64976
/bin/rcp                  66368
/bin/ls                   80752
/bin/ps                   95840
/bin/ed                  122000
/bin/launchctl           167472
/bin/pax                 243104
/bin/csh                 772992
/bin/tcsh                772992
/bin/zsh                1103984
/bin/bash               1371648
/bin/sh                 1371712
/bin/ksh                2180736
$

pythonの場合。

sample.py

コード(BBEdit)

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import glob, os

files = map(lambda x: x[0],
            sorted( map(lambda x: [x, os.path.getsize(x)],
                        glob.glob("/bin/*")),
                        key=lambda x:x[1]))

for file in files:
    print("{0:20s}{1:10d}".format(file, os.path.getsize(file)))

入出力結果(Terminal)

$ ./sample.py
/bin/sync                34288
/bin/wait4path           34576
/bin/echo                34608
/bin/rmdir               34624
/bin/domainname          34672
/bin/sleep               34688
/bin/pwd                 34704
/bin/hostname            34720
/bin/mkdir               35072
/bin/kill                35088
/bin/link                39600
/bin/ln                  39600
/bin/[                   43120
/bin/test                43120
/bin/expr                43808
/bin/cat                 44192
/bin/rm                  44528
/bin/unlink              44528
/bin/mv                  44848
/bin/df                  52432
/bin/date                57408
/bin/cp                  57808
/bin/dd                  61216
/bin/chmod               62768
/bin/stty                64976
/bin/rcp                 66368
/bin/ls                  80752
/bin/ps                  95840
/bin/ed                 122000
/bin/launchctl          167472
/bin/pax                243104
/bin/csh                772992
/bin/tcsh               772992
/bin/zsh               1103984
/bin/bash              1371648
/bin/sh                1371712
/bin/ksh               2180736
$

0 コメント:

コメントを投稿