我的文件由逗号分隔,该逗号提供64列。我提取了字段,如下所示:
awk '{split($0,a,","); print a[57]}'
如何使用my命令计算第57列中值的总和?
答案 0 :(得分:25)
此处似乎没有必要进行拆分,特别是考虑到您正在使用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的内容。
答案 1 :(得分:7)
您可以对文件的第57列求和,然后使用
进行打印awk '{split($0,a,","); sum += a[57]} END {print sum}'