这个问题在这里已经有了答案:
Summing values of a column using awk command
(2 个回答)
5年前关闭。
我的文件由逗号分隔,给出 64 列。我提取的字段如下所示:
awk '{split($0,a,","); print a[57]}'
如何使用我的命令计算第 57 列中的值的总和?
最佳答案
在这里拆分似乎没有必要,特别是考虑到您使用的是 awk,它是为基于字段的处理而设计的。如果您的文件真的是逗号分隔的,那么下面的代码似乎要简单得多,IMO:
awk -F',' '{sum+=$57;} END{print sum;}' file.txt
例如,给定以下输入:
~$ cat testawk.txt
a,a,aa,1
a,a,aa,2
d,d,dd,7
d,d,dd,9
d,dd,d,0
d,d,dd,23
d,d,dd,152
d,d,dd,7
d,d,dd,5
f2,f2,f2,5.5
我们可以得到这样的总和:
~$ awk -F',' '{sum+=$4;}END{print sum;}' testawk.txt
216.5
-F','
告诉 awk 输入的字段分隔符是逗号。{sum+=$4;}
将第 4 列的值添加到运行总计中。END{print sum;}
告诉 awk 在读取所有行后打印 sum 的内容。
关于unix - 如何对 AWK 中的列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905083/