バイナリダンプはやっぱり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