我有一个字符串列表(stdin),如下所示:

1 pineapples
28 apples
16 oranges
8 apples
2 apples
2 oranges
56 pineapples

有没有一种 native 方式(例如sortuniq -c),我可以通过这种方式合并和汇总它们,如下所示:
38 apples
18 oranges
57 pineapples

sort |uniq -c一样,但不仅限于出现次数?

最佳答案

试试这个:

awk '{a[$2] += $1} END{for (i in a) print a[i], i}' < in.txt

输出
38 apples
57 pineapples
18 oranges

10-06 03:44