使用shell脚本查找发生的百分比

时间:2013-06-06 05:51:12

标签: linux awk

我有一个包含这样数字的文件:

0.122
1.44
5.44

我想编写一个shell脚本,它将为我提供以下条件的百分比:

  • %的数据小于0.1
  • %的数据在0.1和0.2之间
  • %的数据在0.2和0.5之间
  • 大于1的数据的百分比

我正在尝试使用awk,但无法通过它...

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

这样的事情可以做到:

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

答案 1 :(得分:0)

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]'