【发布时间】:2015-01-14 12:42:41
【问题描述】:
我有一个巨大的 csv 文件(100,000 条记录),其中包含如下数据:
Col1 Col2 Date & Time
a xyz Oct 31 2014 09:01
b xyz Dec 12 2013 08:15
a xyz Oct 30 2014 07:01
c xyz Dec 26 2013 08:39
a xyz Nov 12 2014 08:25
c xyz Dec 12 2013 08:10
b xyz Dec 12 2013 09:21
我需要删除重复项并仅保留最新的数据(基于第三列 - 日期和时间)。所以输出应该是这样的
Col1 Col2 Date & Time
a xyz Nov 12 2014 08:25
b xyz Dec 12 2013 09:21
c xyz Dec 26 2013 08:39
我尝试先对文件进行排序,然后删除重复项,但对于这个巨大的 csv 文件来说,这是失败的。有人可以帮忙吗?
附:在 col1 中,数据可以来自 a-z 多次。这里只是一个示例。
【问题讨论】:
-
不清楚:列之间是否有任何特定的分隔符?一个标签也许?即:什么指示一列何时完成并开始下一列?
-
@fedorqui - 正如我所提到的,它是一个 CSV(逗号分隔)文件。因此,列将仅由“,”分隔...
-
然后在我的回答中查看更新。
-
您是要对第 1 列、第 2 列还是第 1 列和第 2 列进行重复数据删除?
-
@Sobrique 显然只是 col1。
标签: linux sorting unix csv awk