所以我有一个像这样的laaaaaaaarge文件:
Item|Cost1|Cost2
Pizza|50|25
Sugar|100|100
Spices|100|200
Pizza|100|25
Sugar|200|100
Pizza|50|100
我想为特定项目添加所有Cost1
s 和s 并生成合并输出。Cost2
我写了一个python代码来做到这一点,
item_dict = {}
for line in file:
fields = line.split('|')
item = fields[0]
cost1 = fields[1]
cost2 = fields[2]
if item_dict.has_key(item):
item_dict[item][0] += int(cost1)
item_dict[item][1] += int(cost2)
else:
item_dict[item] = [int(cost1),int(cost2)]
for key, val in item_dict.items():
print key,"|".join(val)
无论如何,是否可以在 awk 或使用任何其他魔法中非常有效和快速地做到这一点?
或者我可以让我的 python 更优雅、更快吗?
预期产出
Pizza|200|150
Sugar|300|200
Spices|100|200