【问题标题】:What's the quickest way to get the mean of a set of numbers from the command line?从命令行获取一组数字的平均值的最快方法是什么?
【发布时间】:2010-09-17 21:07:39
【问题描述】:

使用您希望在 nix 系统上找到的任何工具(事实上,如果您愿意,msdos 也可以),假设您计算一组数字的平均值的最简单/最快的方法是什么在流或文件中每行一个吗?

【问题讨论】:

    标签: command-line statistics average mean


    【解决方案1】:
    awk ' { n += $1 }; END { print n / NR }'
    

    这会在 n 中累加总和,然后除以项目数(NR = 记录数)。

    适用于整数或实数。

    【讨论】:

    • NR 技巧不错,但不确定要接受哪个 awk 答案,所以我选择了票数最高的答案!
    【解决方案2】:

    Awk

    awk '{total += $1; count++ } END {print total/count}'
    

    【讨论】:

      【解决方案3】:

      在 UNIX 上使用 Num-Utils

      average 1 2 3 4 5 6 7 8 9
      

      【讨论】:

      • 有趣。我在 Ubuntu 上安装了这个,我必须在标准输入上指定数字,而不是作为参数。
      【解决方案4】:
      perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';
      

      【讨论】:

        【解决方案5】:

        使用“st”(https://github.com/nferraz/st):

        $ st numbers.txt
        N      min   max    sum    mean  sd
        10.00  1.00  10.00  55.00  5.50  3.03
        

        指定一个选项以查看个人统计数据:

        $ st numbers.txt --mean
        5.5
        

        (免责声明:我写了这个工具:))

        【讨论】:

          【解决方案6】:

          在 Powershell 中,它会是

          get-content .\meanNumbers.txt | measure-object -average
          

          当然,这是冗长的语法。如果您使用别名输入,

          gc .\meanNumbers.txt | measure-object -a
          

          【讨论】:

            【解决方案7】:

            Perl。

            @a = <STDIN>;
            
            for($i = 0; $i < #@a; $i++)
            {
               $sum += $a[i];
            }
            
            print $a[i]/#@a;
            

            Caveat Emptor:我的语法可能有点奇怪。

            【讨论】:

              【解决方案8】:

              红宝石一班

              cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}'
              

              source

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-08-03
                • 1970-01-01
                • 2022-01-27
                • 2013-06-25
                • 2015-08-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多