bonar note

京都のエンジニア bonar の技術的なことや技術的でない日常のブログです。

数値を単位で分割する

何かのコマンド出力とかで、バイト数や秒数などとても大きな数値が表示される事があります。

62945280+0 records in
62945280+0 records out
32227939482 bytes transferred in 4340.259756 secs (7425358 bytes/sec)

これをパッと見た時に、32227939482 が果たして 3GB なのか 300MB なのか把握できないことがよくあります。秒数に関しても(4340 sec くらいなら暗算できますが)同様のケースがあります。

df -h みたいな human readable な出力を用意しているコマンドもありますが全てではないので、なかなか厄介です。今までは irb とかでちまちま計算していたのですが、与えられた数字を単位に分割するコマンドを作ってみました。

github.com

インストール

gem install unit_split

バイト数

$ unit_split -b 32227939482
 30 GB
 14 MB
981 KB
154

秒数

$ unit_split -s 50000
13 hour
53 min
20

日本の単位(これもパッと見分からないことがある)

$ unit_split -j 123534590029342
 123 cho
5345 oku
9002 man
9342

この gem をインストールすれば、カーソルで4桁ずつ数字を選択する生活とおさらばだ!