LTSV が行指向な Key-Value フォーマットで捗る話

引き続き LTSV について。Text::LTSV はやってることは単にタブの split でしょうもないのだけど、せっかく作ったんだし何か利用方法はないかなと考えた。

LTSV のログは欠点があってそのままでは見づらいこと。

Text::LTSV でハッシュになるのだから、YAML とかで出力したらどうなるか試してみよう。さらに、YAML に色づけする YAML::Tiny::Color というのがあったぞ。

#!/usr/bin/env perl
use strict;
use warnings;

use Project::Libs;
use YAML::Tiny::Color qw/Dump/;
use Text::LTSV;

while (<>) {
    my $hash = Text::LTSV->parse_line($_);
    print Dump $hash;
}

こんなスクリプトを書く。慣れてる人ならワンライナーでもいい。で、試しにパイプ & フィルタでかましてみた。

「・・・なにっ!?」 (中二)

これは!! 想像以上に見やすい!!

そして "ua" とか Key 名で grep してみる。

うお・・・これは予想外に捗るんじゃないか・・・。

Unix 哲学と LTSV

これはまさに LTSVフォーマットなログを fluentd + GrowthForecast で料理 - naoyaのはてなダイアリー でも引用した、

という御大のツイートにある「Unix 哲学の大事な点」の賜ですなあ。先の例はパイプ & フィルタ、そして YAML にしたことで行列の縦横が変換された結果の grep でもある。オラ、なんか色々とよりベンリにできそうな気がしてきたぞ・・・。