bash:分组或合并行选择最大时间戳

标签 bash sorting merge group-by max

我有这样的输入:

A 05 something
B 03 something1
A 02 something43
A 01 somethingelse
C 03 something2
B 10 something
C 01 somethingagain

我想输出:

A 05 something
B 10 something
C 03 something2

那是我按第一个字段分组并选择最大的数字。在我的例子中,该数字是固定长度的时间戳,因此您可以使用字母排序来获得最大的数字。我更喜欢使用一些命令行工具来完成此操作,我想它可以通过一些简单的方法来完成,但到目前为止还没有成功。请不要使用正则表达式,越可读越好:)

最佳答案

只需排序两次:

< input sort -rk2,2 | sort -k1,1 -u

第一个排序按第二列排序(-r 表示反转),第二个排序按第一列和唯一值排序 (-u)。

关于bash:分组或合并行选择最大时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333172/

相关文章:

wpf - 如何对 WPF 工具包 DataGrid 上的 DataGridTemplateColumn 进行排序?

java - 如何根据自定义顺序对 java 列表进行排序

mysql - 树输出mysql

c - 如何合并两个数字并将其存储在另一个数字中,并且点位于它们之间

vb.net - VB.net在共享相似文件名的目录中合并PDF

linux - mac/linux 上的 zip 命令选项

bash - 迷你项目 : Change the color of the terminal based on the time of day

javascript - VueJS 扩展组件 : remove parent's property

linux - 如何将 `config.sh` 中的变量包含到 `a.sh` 和 `b.sh` 中?

linux - 无法读取 bash 脚本中的第二个参数