Linux CSV根据旧日期删除重复项

标签 linux

我们有以下 CSV 文件,其中包含

DCR_Path、翻译方向、日期和时间

data1,Send for Translation To CTM,Sep 30 2014 03:22

data2,Send for Translation To CTM,Sep 30 2014 02:21

data1,Send for Translation To CTM,Sep 30 2014 03:23

data1,Send for Translation To CTM,Sep 30 2013 03:24

data3,Send for Translation To CTM,Sep 30 2014 03:10

data2,Send for Translation To CTM,Sep 30 2014 02:22

data1,Send for Translation To CTM,Sep 30 2014 02:20

我需要获取最新的并删除其他重复项,输出应该是:

DCR_Path,Direction for Translation,Date & Time

data1,Send for Translation To CTM,Sep 30 2014 03:23

data2,Send for Translation To CTM,Sep 30 2014 02:22

data3,Send for Translation To CTM,Sep 30 2014 03:10

我尝试了以下命令,但它没有删除基于旧日期的数据。

sort -u -t, -k1,2 filename.txt

任何帮助删除基于旧日期的重复数据并仅保留最新数据。

最佳答案

请替换_YOUR_FILE_...

awk -F ',' '{ if (Z) { "(date --date=\""$3"\" +\"%s\")" | getline X ; if (Y[$1] < X) { Y[$1] = X; C[$1] = $0 } } else { Z = $0 } } END { print Z ; for (V in C) { print C[V] } }' < _YOUR_FILE_

关于Linux CSV根据旧日期删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26868403/

相关文章:

linux - 如何过滤流/管道以删除空部分的 header ?

linux - Mac 上的 gnu utils 如 gobjdump parser Linux ELF binary 可以吗?

linux - 这是什么意思?

linux - 无法以非 root 用户启动 jboss 服务

linux - 如何替换 Linux 输出中的列数据 - 可能使用 awk sed 等

php - 如何从站点根目录使用我的服务器的 PEAR 包

linux - 如何从当前目录执行添加到 .bashrc 的文件?

linux - Linux(CentOS)中/proc/meminfo文件中的 "Mlocked"有何意义

php - 不显示在 foreach 中启动的 shell_exec 函数的结果

linux - 在 Linux 上动态设置环境变量