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

grep just uniq data with latest time-stamp

我有一个文件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[]++'

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