linux - 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)选择唯一的数据
结果应该是:
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
每个键(第一个字段)选择第一条记录。
推荐阅读
- c# - MySQL SELECT INTO 变量,获取“命令执行期间遇到致命错误。”
- firebase - 为什么 Firestore 拒绝该操作?
- c - 处理器如何读取内存?
- node.js - 最大cpu使用率大表
- javascript - 使用 next.js 与传统 SSR 进行服务器端渲染
- xsd - 我应该如何在 RDF 词汇中定义我自己的受限类型?
- github - 分支合并后将 VS 2019 与 Github 同步
- docker - Docker 容器 nvidia/k8s-device-plugin:1.9 不断报告错误
- python - 将 rowsum 列添加到大型稀疏矩阵
- spss - 通过添加行来组合变量