我有这种格式的巨大文本文件:
aaa bbb 1
aaa ccc 2
aaa ddd 3
bbb ww 1
bbb kio 3
我想聚合它,结果应该是:
aaa bbb 1/6
aaa ccc 2/6
aaa ddd 3/6
bbb ww 1/4
bbb kio 3/4
第 3 列 - 概率 p(y|x)
我应该如何使用 awk、sed 来做到这一点?
最佳答案
awk 'NR==FNR{a[$1]+=$3;next}{printf("%s/%d\n",$0,a[$1])}' ./infile ./infile
输出
$ awk 'NR==FNR{a[$1]+=$3;next}{printf("%s/%d\n",$0,a[$1])}' ./infile ./infile
aaa bbb 1/6
aaa ccc 2/6
aaa ddd 3/6
bbb ww 1/4
bbb kio 3/4
关于file - linux 中的列聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8984652/