想像の5倍便利! from_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
は 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} あたりにあれば良しなに読んでもらえます。設定のフォーマットは Config::Simple で読める形式ならなんでも OK です。
では、みなさま良いお年を~