【问题标题】:Find percentage of occurrence using shell script使用 shell 脚本查找出现的百分比
【发布时间】: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,但无法通过...

任何帮助将不胜感激。

【问题讨论】:

    标签: linux awk


    【解决方案1】:

    这样的事情会做:

    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 &lt;= $1 &amp;&amp; $1 &lt; 0.1 等似乎比最后减去更干净。
    • 感谢 Perreal 的回答
    【解决方案2】:
    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]'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 2017-03-14
      相关资源
      最近更新 更多