汇总每列bash中的所有值 [英] Sum all values in each column bash
本文介绍了汇总每列bash中的所有值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个csv文件,如下所示:
I have a csv file which looks like this:
ID_X,1,2,7,8
ID_Y,6,9,3,5
ID_Z,7,12,4,4
我的目标是创建一个csv文件,其中包含每一列(从第二列开始)的所有值的总和,因此在这种情况下,该文件将如下所示:
My goal is to create a csv file with the sum of all the values in each single column (from second column on), so in this case, that file will look like this:
SUM,14,23,14,17
到目前为止,我可以使用awk一次完成一列.例如,对于带有数字的第一列:
So far, I am able to do it for one column at a time using awk. For instance, for the first column with numbers:
awk 'BEGIN {FS=OFS=","} ; {sum+=$2} END {print sum}' test.txt
14
有什么方法可以实现我想要的?
Is there any way to achieve what I am looking for?
非常感谢!
推荐答案
-
使用
datamash
:
echo -n SUM,; datamash -t, sum 2,3,4,5 < file.csv
使用 numsum
:
printf 'SUM%.0s,%s,%s,%s,%s\n' `numsum -s, -c file.csv`
,或者,如果 file.csv 中的列数是可变的:
or, if the number of columns in file.csv is variable:
numsum -s, -c file.csv | sed 's/^0/SUM/;y/ /,/'
输出:
SUM,14,23,14,17
这篇关于汇总每列bash中的所有值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文