如何根据一行中的字段汇总数据

时间:2015-05-21 22:37:45

标签: bash data-processing

在bash中,如何读取大型.csv文件并汇总数据?我需要为每个人获得总数。

示例输入:

joey    4
joey    3
joey    4
joey    6
paul    7
paul    3
paul    1
paul    4
trevor  5
trevor  6
henry   7
mark    8
mark    9
tom 0

最终应该这样结束:

joey    17
paul    15
trevor  11
henry   7
mark    17
tom 2

1 个答案:

答案 0 :(得分:0)

list=`your example input | awk '{print $1}' | uniqe` 

它给你这样的东西:

joey
paul
trevor
henry
mark
tom

现在让我们做两个for循环:

for i in $list
do
     for j in `$list | grep $i | awk '{print $2}'`
     do
     counter=$counter+$j
     done 
echo "$i $j"
done

第一个循环是名称,第二个循环是计算每个名称的结果。猜猜它应该有效,而且这很简单。