使用awk合并.csv文件

时间:2014-05-14 06:55:01

标签: shell awk sed

我有15个.csv文件。每个文件都包含以下记录:

EmailID,SendCount,ReciveCount,SendSize(KB),ReciveSize(KB)
user1@domain.com,0,1,0,29
user2@doman.com,1,0,0,0
user3@domain.com,1,0,0,0
user4@domain.com,0,4,0,294
user5@domain.com,0,2,0,35

第一列包含电子邮件ID,第二列包含邮件发送计数,第三列包含邮件接收计数,第四列包含总发送和接收大小。
所有15个文件都包含一些常见ID和一些不同的ID。各个值可能不同。

我的要求: 我想将所有这些文件合并到单个文件中,如果某个电子邮件ID在2个或更多文件中是常见的,则它应该只在输出文件中添加一次,并且应该添加列SendCount,ReciveConunt,SendSize,ReciveSize下的值,并且只应获取总数显示在各自的列中。

是否可以只使用awk和sed脚本?

提前致谢...

1 个答案:

答案 0 :(得分:1)

您可以像这样使用awk:

awk -F, '$1 != "EmailID" {p[$1]+=$2;q[$1]+=$3;r[$1]+=$4;s[$1]+=$5} 
        END{for (i in p) print i, p[i], q[i], r[i], s[i]}' OFS=, input*.csv