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
以选择每个键(第一个字段)的第一条记录。
这是我的 sort
和 uniq
。如果愿意,您可以使用 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
我有一个文件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
以选择每个键(第一个字段)的第一条记录。
这是我的 sort
和 uniq
。如果愿意,您可以使用 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