バイナリダンプはやっぱり16進じゃないと

バイナリアンというかBinary 2.0な人たちの基本はバイナリダンプだと思います。NetBSDには標準でod(1)が入っています。
とはいいつつod(1)の表示フォーマットにいまいち馴染めなくて、僕はhttp://homepage1.nifty.com/~tetsu/ruby/cmd/hd.htmlを愛用しています。残念ながら最近のRubyでこのプログラムを動かそうとするとワーニングがでます。とりあえず以下のパッチで回避しています。

--- hd.rb.orig	2006-03-21 19:39:44.000000000 +0900
+++ hd.rb	2006-03-20 23:57:54.000000000 +0900
@@ -111,7 +111,7 @@
 
 offset = 0
 
-while $_ = ARGV[0] and /^-/
+while $_ = ARGV[0] and $_ =~ /^-/
   case ARGV.shift
   when /^-0([0-7]+)$/
     offset = $1.oct
@@ -121,8 +121,8 @@
     offset = $1.to_i
   when /^-[se]+$/i
     $kanji = true
-    $nkf_opt_in = '-' + $1 if /([SE])/
-    $nkf_opt_out = '-' + $1 if /([se])/
+    $nkf_opt_in = '-' + $1 if $_ =~ /([SE])/
+    $nkf_opt_out = '-' + $1 if $_ =~ /([se])/
   else
     usage
   end

そういえば、Rubyのp(というかStringのinspect)って、Stringを8進でダンプします。僕はとっさに読めませんorz

irb(main):001:0> p "\x123"
"\0223"
=> nil