コマンドライン上でヒストグラム値(頻度数)を求める
2999 ワード
こんにちは。
コマンドライン上でヒストグラム値(頻度数)を求めるシェルスクリプト を作りました1。
下記の動作例は history
コマンドの第2カラムを対象としています(すなわち過去に使用したコマンド名)。
$ history | awk '{print $2}' | ./hist.sh | ./hist_graph.sh
brew 87 ##################################################
pip 33 ###################
ls 30 #################
:
:
ソース
頻度数を求める処理
hist.sh
#!/bin/sh
cat "$@" | sort | uniq -c | sort -k1nr | awk '{printf "%16s %4d\n",$2,$1;}'
exit 0
図示(#の連続)を付け加える処理
hist_graph.sh
#!/bin/sh
cat "$@" | awk '!max{max=$2;}{f=50/max;if(f>1)f=1;i=$2*f;r="";while(i-->0)r=r"#";printf "%s %s\n",$0,r;}'
exit 0
他の方法
なお改めてヒストグラム実現方法を調べてみると、"in-terminal (ASCII) histograms tool" (Stack Overflow) の中で、下記も紹介されていました。
* https://github.com/bitly/data_hacks
* https://github.com/philovivero/distribution
-
ただしこの話題は「CSVデータのヒストグラム値(頻度数)の計算(qコマンド利用)」とほとんど同じなので恐縮です。 ↩
Author And Source
この問題について(コマンドライン上でヒストグラム値(頻度数)を求める), 我々は、より多くの情報をここで見つけました https://qiita.com/kkdd/items/88581a2d04843c3c7ce7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .