【问题标题】:awk to take average of values in column 2 with reference to name in column1 [duplicate]awk 参考第 1 列中的名称取第 2 列中的值的平均值 [重复]
【发布时间】:2013-10-14 14:17:30
【问题描述】:
RAM,80  
GAM,20  
DAM,30  
RAM,40  
DAM,20  
GAM,30 

如何使用awk显示RAM、GAM和DAM的平均值?

【问题讨论】:

    标签: bash awk


    【解决方案1】:

    像这样,例如:

    $ awk -F, '{a[$1]+=$2; ++b[$1]} END {for (i in a) print i, a[i]/b[i], "("b[i]" values)"}' file
    DAM 25 (2 values)
    GAM 25 (2 values)
    RAM 60 (2 values)
    

    说明

    {a[$1]+=$2; ++b[$1]}

    • 将 z 值(第 2 列)存储在数组 a 中。
    • 将每个 x 值(第 1 列)的元素数量存储在数组 b 中。

    END {for (i in a) print i, a[i]/b[i]}'

    • 通过存储在数组中的值循环打印结果。

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 2014-04-29
      • 1970-01-01
      • 2018-12-25
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 2018-01-26
      相关资源
      最近更新 更多