bash - 在 bash 中对键进行排序并求和它们的值

标签 bash awk

我有一个字符串列表(标准输入),如下所示:

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

关于bash - 在 bash 中对键进行排序并求和它们的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47875718/

相关文章:

unix - 比较 Unix 脚本中每个单元格的大小

bash - 如何将 stdout 和 stderr 重定向到一个文件

linux - 如何修复密码过期脚本中的无效日期错误

windows - 更新核心后MSYS2中找不到的一些主要命令

linux - 如何在 bash 中执行算术级数

node.js - 如何让killall关闭进程所在的终端?

linux - 如何从文件列表中提取文件名?

linux - 在这种情况下如何使用 shell、bash 或 sed 命令

bash - 如何提取具有公共(public)字段的行

regex - 使用 sed 或 awk 拆分数据