dig の出力に色をつける dig-color

  dig の出力に色をつける dig-color というのを作ってみました.
  リソースレコードタイプは A/NS/CNAME/SOA/MX のみにしか対応していませんので,そのほかのタイプが必要であれば追加してください.

#!/usr/bin/env ruby

colors = {
    "section" => "02;01",
    "comment" => "37",
    "normal"  => "00",
    "A"       => "32",
    "NS"      => "34",
    "CNAME"   => "36",
    "SOA"     => "33",
    "MX"      => "31",
}

IO.popen("dig " + ARGV.join(" ")) { |io|
    io.each_line { |line|
        color = colors["normal"]
        if line =~ /^;;.+SECTION:$/
            color = colors["section"]
        elsif line =~ /^;/
            color = colors["comment"]
        elsif line =~ /^(.+\s)(SOA|NS|A|MX|CNAME)(\s.+)$/
            color = colors[$2]
            # レコードタイプのみに色を付ける場合
            #line = sprintf "%s\e[%sm%s\e[00m%s\n", $1, colors[$2] ,$2, $3
        end
        printf "\e[%sm%s\e[00m", color, line
    }
}


- 出力例 (この色が見やすいかどうかは……)
  


- 追記
  Perl で書き換えてくれた方がいました.

- dig の出力に色をつける dig-color(perl版) | cafe chantant blog
  http://www.cafechantant.com/blog/2007/07/04/dig-%e3%81%ae%e5%87%ba%e5%8a%9 ...