我有这样的输入:
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/