按第一例相同项求第二列的值

文件test:

文本内容如下:
a 2
b 3
c 6
a 8
d 9
处理方法,如果第一列相同,第二列值相加(比如a 10),处理完毕后,打印第二列的值大于8的数据。

awk:

awk '{a[$1]+=$2;}END{for(i in a){if(a[i]>8){print i" "a[i];}}}' test


python:

#!/usr/bin/env python

f = file("test",'r')
m = {}

for x in f.readlines():
    key,value = x.split()
    if m.has_key(key):
       m[key] = int(m[key])+int(value)
    else:
        m[key] = value
    if int(m[key]) < 8:
        del m[key]

print m
for k,v in m.items():
    print k,v


你可能感兴趣的:(第一例,第二列,相同项)