A Micro Toolbox

ソフトウェアのニッチな問題の対処記録です

sparkコマンドで棒グラフ化

HackerNewsで見つけたsparkコマンドを試してみた。

UTF-8環境のコマンドラインで動く。

まずはzipアーカイブをダウンロードして実行してみる。

$ wget -O spark.zip --no-check-certificate 'https://github.com/holman/spark/zipball/master'
$ unzip spark.zip
$ cd holman-spark*
$ ./spark 3 1 4 1 5 9 2 6 5 3
▃▁▄▁▅█▂▆▅▃
$

PATHを通してファイルサイズを棒グラフに。

$ du * | cut -f1 | spark
▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▂▅█▁▁█
$ 

シェルスクリプト中に棒グラフとして表示する文字がUTF-8のまま書かれていたので16進数表記にしてみた。

$ diff -u spark.org spark
--- spark.org   2011-11-15 21:22:40.000000000 +0900
+++ spark       2011-11-16 20:13:58.000000000 +0900
@@ -43,7 +43,12 @@
 }
 
 # The actual fun characters we are generating in the sparkline.
-ticks=(▁ ▂ ▃ ▄ ▅ ▆ ▇ █)
+ticks_utf8="e29681 e29682 e29683 e29684 e29685 e29686 e29687 e29688"
+ticks=()
+for c in $ticks_utf8
+do
+    ticks=("${ticks[@]}" `echo ${c} | xxd -r -p`)
+done
 
 # The numbers the user gave us.
 numbers=()
$ 

16進数の文字コードを文字列として出力するためにxxdコマンドを使っている。