我们有以下 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/