さあ!栄冠の一位は誰の手に!? 発表はわっふるわっふるの後で!!
わっふる!
わっふる!!
lsさん、オプション大杉><
ls.c : 40 abcdfghiklmnopqrstuvwxABCDFGHILNQRSTUXZ1 pr.c : 30 -0123456789DFJNTWabcdfhlmortvw od.c : 26 AaBbcDdeFfHhIijLlNOoSstvXx sort.c : 24 -bcCdfghikmMnorRsStTuVyz cp.c : 20 abdfHilLnprstuvxPRST uniq.c : 20 -0123456789Dcdfisuwz du.c : 17 0abchHklmsxBDLPSX ptx.c : 17 AFGMORSTWbifgotrw tail.c : 17 cnfFqsv0123456789 fmt.c : 16 0123456789cstuwp install.c : 15 bcCsDdgmoptTvSZ split.c : 15 0123456789Cabdl df.c : 14 aBiFhHklmPTtvx head.c : 14 cnqv0123456789 who.c : 14 abdlmpqrstuwHT ln.c : 11 bdfinstvFST nl.c : 11 hbfviplswnd cat.c : 10 benstuvAET chcon.c : 10 HLPRhvurtl join.c : 10 -aei12jotv mv.c : 9 bfintuvST pinky.c : 9 sfwiqbhlp chgrp.c : 8 HLPRcfhv chown.c : 8 HLPRcfhv csplit.c : 7 fbknsqz id.c : 7 agnruGZ readlink.c : 7 efmnqsv rm.c : 7 dfirvIR shred.c : 7 fnsuvxz touch.c : 7 acdfmrt cut.c : 6 bcdfns date.c : 6 dfrRsu mktemp.c : 6 dpqtuV runcon.c : 6 +rtulc su.c : 6 cflmps tr.c : 6 +cCdst shuf.c : 5 einoz stat.c : 5 cfLtZ wc.c : 5 clLmw chmod.c : 4 Rcfv kill.c : 4 lnst md5sum.c : 4 bctw mkdir.c : 4 pmvZ seq.c : 4 +fsw stdbuf.c : 4 +ioe stty.c : 4 -agF truncate.c : 4 cors base64.c : 3 diw comm.c : 3 123 dircolors.c : 3 bcp env.c : 3 +iu fold.c : 3 bsw pathchk.c : 3 +pP tac.c : 3 brs expand.c : 2 it mkfifo.c : 2 mZ mknod.c : 2 mZ nice.c : 2 +n paste.c : 2 ds pwd.c : 2 LP rmdir.c : 2 pv setuidgid.c : 2 +g sum.c : 2 rs tee.c : 2 ai timeout.c : 2 +s basename.c : 1 + chroot.c : 1 + dirname.c : 1 + nohup.c : 1 + printenv.c : 1 + tty.c : 1 s yes.c : 1 +
やっつけな集計コード:
# cd coreutils-7.6/src && ~/this.pl *.c | sort -t: -k2nr for my $f (@ARGV) { open my $src, '<', $f or die $!; my $getopt; while (<$src>) { if (/(getopt.*\(.*)/) { $getopt = $1; chomp $getopt; while ($getopt !~ /\)/) { chomp($_ = <$src>); $getopt .= $_; } last; } } next unless $getopt; my $optstring = (split /\s*,\s*/, $getopt)[2]; my $refre; if ($f eq 'pr.c') { $optstring = '"-0123456789D:FJN:S::TW:abcde::fh:i::l:mn::o:rs::tvw:"'; } elsif ($f eq 'du.c') { $optstring = '"0abchHklmsxB:DLPSX:"'; } elsif ($f eq 'kill.c') { $optstring = '"ln:s:t"'; } if ($optstring !~ /^"/) { $refre = qr/$optstring[^"]+"([^"]+)/; } if ($refre) { seek $src, 0, 0; while (<$src>) { if (/$refre/) { $optstring = $1; last; } } } close $src; $optstring =~ s/[a-zA-Z0-9]:://g; $optstring =~ s/[":]//g; next unless $optstring; printf "%-15s: %2d %s\n", $f, length($optstring), $optstring; }