在unix中根据文件上的条件删除重复行

在unix中根据文件上的条件删除重复行,unix,Unix,我有一个从表中提取的数据文件。现在,如果存在多个id条目,我必须为id保留带有最新时间戳的行。 需要删除其他旧的条目行。这个文件需要清理 Id | timestamp | status 3 | 17-Feb-20 12:30:00:00 PM | E 1 | 16-feb-20 09:30:00:00 Am | L 3 | 17-Feb-20 15:30:00:00 PM | N 2 | 17-Feb-20 10:12:00:00 Am | L 我需要保留id 1,2,因为只有一个条目。但是I

我有一个从表中提取的数据文件。现在,如果存在多个id条目,我必须为id保留带有最新时间戳的行。 需要删除其他旧的条目行。这个文件需要清理

Id | timestamp | status
3 | 17-Feb-20 12:30:00:00 PM | E
1 | 16-feb-20 09:30:00:00 Am | L
3 | 17-Feb-20 15:30:00:00 PM | N
2 | 17-Feb-20 10:12:00:00 Am | L
我需要保留id 1,2,因为只有一个条目。但是ID3有两行,但是应该保留时间戳为下午15:30的那一行,因为这是最新的

我得到了使用“sed”cmd删除特定行号或特定行的参考。但问题是我会逐行阅读。 假设在循环第一行时,id为3,如果存在匹配id,我将在同一文件上创建grep。所以对于id 3,我得到了naother匹配,然后将比较时间戳。由于我当前所在的行较旧,时间戳需要删除tat行并保留最新的一行。
是否可以在我将要阅读的同一个文件上执行此操作,或者显然应该与另一个文件一起执行此操作???

请在您的帖子中添加3个简单的内容。1-输入样本,2-输出样本,3-您在问题中所做的努力,然后让我们知道。您的文件是否总是进行排序,以便对于给定id,后面的时间戳位于前面的时间戳之后?是否要求输出行的顺序与输入的顺序相对应?在您的示例中,您是否需要按IDs1、3、2的顺序输出,或者可以按任何顺序输出,例如IDs1、2、3或3、1、2?1.数据未按任何顺序排序。它提取表数据。2.排序不是预期的,但应该是唯一的。这应该直接在SQL中完成,更简单!