【发布时间】:2013-06-06 05:51:12
【问题描述】:
我有一个带有如下数字的文件:
0.122
1.44
5.44
我想编写一个 shell 脚本,它会给我以下标准的百分比:
- % 的数据小于 0.1
- % 的数据介于 0.1 和 0.2 之间
- % 的数据介于 0.2 和 0.5 之间
- % 的数据大于 1
我正在尝试使用 awk,但无法通过...
任何帮助将不胜感激。
【问题讨论】:
我有一个带有如下数字的文件:
0.122
1.44
5.44
我想编写一个 shell 脚本,它会给我以下标准的百分比:
我正在尝试使用 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
【讨论】:
0 <= $1 && $1 < 0.1 等似乎比最后减去更干净。
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]'
【讨论】: