次のような番号のファイルがあります。
0.122
1.44
5.44
次の基準のパーセンテージを表示するシェル スクリプトを作成したいと考えています。
- データの % が 0.1 未満
- 0.1 ~ 0.2 のデータの割合
- 0.2 から 0.5 の間のデータの %
- 1 より大きいデータの割合
awkで試していますが、うまくいきません...
どんな助けでも大歓迎です。
次のようなことができます:
awk '
$1 < 0.1 { c[0]++ }
$1 < 0.2 { c[1]++ }
$1 < 0.5 { c[2]++ }
$1 > 1 { c[3]++ }
END {
c[2] -= c[1];
c[1] -= c[0];
t = c[0] + c[1] + c[2] + c[3];
print (c[0]/t) * 100, (c[1]/t) * 100, (c[2]/t) * 100, (c[3]/t) * 100
}' input
cat file | python -c 'import numpy,sys; a=[float(l.strip()) for l in sys.stdin];b=numpy.histogram(a,bins = [0,.1,.2,.5,1,max(a)])[0];print [x*100/sum(b) for x in b]'