# 想像の5倍便利! from_unixtime するフィルター {{tag: perl, cpan, unixtime}} 年末ですね。この時期は面白いテレビが目白押しでたまりませんね! さて、またひとつ俺得のモジュールを書きましたYO! ## from_unixtime select をターミナルから直で実行することってよくありますよね? $ db_fetch HANDLE --sql 'select * from foo_table where id=1' id 1 name John created_at 1419702037 updated_at 1419702037 こういう時、unixtime が入ってるカラムに対して SQL で from_unixtime をマメに書くのがすごく面倒くさいので、その名も `from_unixtime` というフィルタコマンドを書いてみました。 pipe して使うと、以下のようによしなに日付変換したものを表示してくれるようになります。 $ db_fetch HANDLE --sql 'select * from foo_table where id=1' | from_unixtime id 1 name John created_at 1419702037(Sun, 28 Dec 2014 02:40:37 +0900) updated_at 1419702037(Sun, 28 Dec 2014 02:40:37 +0900) `from_unixtime` は {{cpan: App::FromUnixtime}} に同梱されています! ### 表示のカスタマイズ 日付形式が気に食わないとか、'(' を変えたいという場合は、以下のようにオプションが用意されています。 $ db_fetch HANDLE --sql 'select * from foo_table where id=1' | from_unixtime --format='%Y-%m-%d %H:%M:%C' --start-bracket=' [' --end-bracket=']' id 1 name John created_at 1419702037 [2014-12-28 02:40:20] updated_at 1419702037 [2014-12-28 02:40:20] 以下のように、`value` カラムがよしなには変換されない場合、`--re` オプションを利用します。 $ db_fetch HANDLE --sql 'select * from bar_table where id=1' | from_unixtime id 1 name John value 1419702037 updated_at 1419702037(Sun, 28 Dec 2014 02:40:37 +0900) $ db_fetch HANDLE --sql 'select * from bar_table where id=1' | from_unixtime --re value id 1 name John value 1419702037(Sun, 28 Dec 2014 02:40:37 +0900) updated_at 1419702037(Sun, 28 Dec 2014 02:40:37 +0900) ### rc 設定ファイル 表示形式のカスタマイズや、`--re` オプションの設定は、`.from_unixtimerc` ファイルに記述しておけば、毎度書く必要はありません。 .from_unixtimerc の置き場所はホームディレクトリか /etc/ か $ENV{CMDRC_DIR} あたりにあれば良しなに読んでもらえます。設定のフォーマットは {{cpan: Config::Simple}} で読める形式ならなんでも OK です。 では、みなさま良いお年を~