dig の出力に色をつける dig-color(perl版)
2007/07/04 02:09 posted by kunkichi
せっかく『あわせて読みたい』の画像をはっつけたので、どんなサイトが「あわせて」読まれてるのかな?ということで、リンクをたどってみたら、こういうのを見つけました。
cl.pocari.org - dig の出力に色をつける dig-color
dig の出力に色をつける dig-color というのを作ってみました.
リソースレコードタイプは A/NS/CNAME/SOA/MX のみにしか対応していませんので,そのほかのタイプが必要であれば追加してください.
こちらはRubyで書かれているようで、Rubyが入ってない環境は結構あるかなと思ったので、Perlで書き換えてみました。
#!/usr/bin/perl -w
use strict;
use warnings;
my %colors = (
"section" => "02;01",
"comment" => "37",
"normal" => "00",
"A" => "32",
"NS" => "34",
"CNAME" => "36",
"SOA" => "33",
"MX" => "31",
);
my @return = readpipe( "dig " . join( " ", @ARGV ));
foreach my $line ( @return ){
my $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;
}
printf "\e[%sm%s\e[00m", $color, $line;
}
ま、単にPerlの書き方に変えただけなんだけど。変数とか配列とかの書き方とか、あとpopen使ったことないのでreadpipeに置き換えただけみたいな、本当にその程度。
むしろ、出力に色を付けるのは詳しく知らなかったので、その辺はいじらないでそのまま動かしたら、サラッと動いちゃったので本人がびっくり、みたいな(爆)
結果はこんな感じ。
色がつくだけで何気に見やすくなるんですね。オリジナルの作者の方のアイデアに感謝。








コメント&トラックバック
トラックバックURL: