linux - 使用 awk 计算数字的平均值

标签 linux bash math awk putty

我有一个名为 test.txt 的文件,其中包含以下内容:

10
200
3000
=======
4
5
=======

我需要编写一个 awk 脚本来将此文件中的文本作为 awk 脚本的输入和输出:

10
200
3000

Average 1070.00

4
5

Average 4.50

我的脚本是这样写的:

{while($1!~"=======") s+=$1;}
{print "Average ", s}

每次运行此代码时,我都会使用:

awk -f awrp4 test.txt

但是它崩溃了。我不知道我做错了什么。我是初学者,正在尝试了解 awk 函数,所以如果这看起来很简单,我深表歉意。欢迎任何帮助。

最佳答案

使用 GNU awk,你可以写:

gawk '
    BEGIN {FS = "\n"; RS = "\n=+\n"}
    NF > 0 {
        sum = 0
        for (i=1; i<=NF; i++) {
            print $i
            sum += $i
        }
        printf "Average %.2f\n", sum/NF
    }
' file

关于linux - 使用 awk 计算数字的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143717/

相关文章:

linux - 无法在 RedHat 6.8 VM 上安装 REALMD

c++ - 快速的每列求和。可能的?

linux - 使用终端监控 linux 服务器和/或日志文件

python - 我如何搜索目录并找到与正则表达式匹配的文件?

bash - 为什么 `ack` 像这样与 `bash` 一起使用时不产生输出?

android - 如何以正确的方式将 UTF8 格式化为主题 header ?

php - 将 TOP CPU 和 RAM 概念性地输送到 Jquery Graph 中

Java - 用于 Linux 的 Process.destroy() 源代码

java - 两个签名 Java 'long' 值的饱和加法

java - 我想,试图获得重心位置?