我有一个包含如下数据的大文件:
a 23
b 8
a 22
b 1
我希望能够得到这个:
a 45
b 9
我可以先对该文件进行排序,然后在 Python 中扫描该文件一次。有什么好的直接命令行方式来执行此操作?
最佳答案
编辑:现代 (GNU/Linux) 解决方案,正如几年前的评论中提到的 ;-) 。
awk '{
arr[$1]+=$2
}
END {
for (key in arr) printf("%s\t%s\n", key, arr[key])
}' file \
| sort -k1,1
最初发布的解决方案,基于旧的 Unix sort
选项:
awk '{
arr[$1]+=$2
}
END {
for (key in arr) printf("%s\t%s\n", key, arr[key])
}' file \
| sort +0n -1
我希望这会有所帮助。
https://stackoverflow.com/questions/10286522/