📊

jqで簡易データバーを表示する

2021/05/04に公開

小ネタですが、手元のデータをサッとグラフ的に可視化したい時に jq で文字列のリピート処理ができることを知っているとデータバーを描画できて楽しいです。

cat << EOF | jq -r '.bar="=" * (.value/10) | "\(.timestamp) | \(.bar) \(.value)"'
{"timestamp": "2021-05-04T13:10:00Z", "value": 120}
{"timestamp": "2021-05-04T13:20:00Z", "value": 23}
{"timestamp": "2021-05-04T13:30:00Z", "value": 42}
EOF

というスクリプトから

2021-05-04T13:10:00Z | ============ 120
2021-05-04T13:20:00Z | == 23
2021-05-04T13:30:00Z | ==== 42

という表示が得られます。みたいなことを以前ネットワーク速度を計測したときに行っていました。

https://zenn.dev/asataka/scraps/5c1f9b723d48df

gnuplot等色々試しましたが、欲しい時にすぐに頭の中から取り出せる方法として、私の場合はjqが丁度良さそうだという結論になりました。また思い出せなかったら考えを改めます😇

Discussion