あなたが今まで打ったなかで一番長いコマンドは?

30分プログラム、その417。今までで打った中で一番長いコマンドが何か気になったので、調べてみた。

使い方

# そのままだと見ずらいので、重複を削除
$ gosh 417-long_hist.scm ~/.history | sed 's/^.*;//' | uniq
: 1221357578:0;/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ru
by -Itest "/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake/rake_test_loader.rb"
"test/unit/dotfile_test.rb"
: 1222145457:0;echo "echo -e "\0377\0364\0377\0375\0006" >break.bin; sudo /usr/b
in/arping -f 192.168.1.1; sudo nc -vvv 192.168.1.1 9000 <break.bin; telnet 192.1
68.1.1 9000" > catch_fonera+
...

Rails単体テストが遅すぎてなんで遅いかを調べているときのログだな、これは。あとは、La Foneraをハックしようとがんばっていたときのやつも残ってる。

ソースコード

#! /opt/local/bin/gosh
;; -*- mode:scheme; coding:utf-8 -*-
;;
;; long_hist.scm -
;;
;; Copyright(C) 2008 by mzp
;; Author: MIZUNO Hiroki / mzpppp at gmail dot com
;; http://howdyworld.org
;;
;; Timestamp: 2008/11/18 22:14:35
;;
;; This program is free software; you can redistribute it and/or
;; modify it under MIT Lincence.
;;

(use srfi-1)

(define (iport->list port)
  (port->list (cut read-line <> #t) port))

(define (<> args)
  (if (eq? args '())
      (iport->list (standard-input-port))
      (append-map (compose iport->list open-input-file)
		  args)))

(define (len-sort xs)
  (sort xs (lambda (x y)
	     (> (string-length x) (string-length y)))))

(define (main args)
  (for-each print (len-sort (<> (cdr args)))))