grep只是带有最新时间戳的uniq数据



我有一个文件test.txt

A 2018-11-28 10:04:59.286
A 2018-11-28 10:07:59.286
B 2018-11-28 10:04:58.993
B 2018-11-28 10:06:58.993
C 2018-11-28 10:04:55.714
C 2018-11-28 10:04:59.714

我想根据最新的时间戳,每个(A,B,C(只选择uniq数据

简历应该是:

A 2018-11-28 10:07:59.286
B 2018-11-28 10:06:58.993
C 2018-11-28 10:04:59.714

我使用了sort+uniq命令,但我找不到适合我的解决方案。

感谢

sort/awk

$ sort -k1,1 -k2r file | awk '!a[$1]++'
A 2018-11-28 10:07:59.286
B 2018-11-28 10:06:58.993
C 2018-11-28 10:04:59.714

从上的第二个字段反向排序,管道到awk以拾取每个键的第一条记录(第一个字段(。

这是我的sortuniq。如果愿意,可以使用sort对结果进行重新排序。

$ sort -r file | uniq -w 1
C 2018-11-28 10:04:59.714
B 2018-11-28 10:06:58.993
A 2018-11-28 10:07:59.286

man uniq:

-w, --check-chars=N
compare no more than N characters in lines

最新更新