【发布时间】:2015-08-24 21:24:03
【问题描述】:
我有一个这样的 csv 文件:(命名为 test2.csv)
lastname,firstname,83494989,1997-05-20,2015-05-07 15:30:43,Sentence Skills 104,Sentence Skills 104,Elementary Algebra 38,Elementary Algebra 38,Sentence Skills 104,Sentence Skills 104,Elementary Algebra 38,Elementary Algebra 38,
我想删除重复的条目
我得到的最接近的是以下 awk 命令
awk '{a[$0]++} END {for (i in a) print RS i}' RS="," test2.csv
它可以工作,但会导致新的问题,它将值乱序排列,如下所示:
,Elementary Algebra 38
,2015-05-07 15:30:43
,Sentence Skills 104
,FirstName
,LastName
,1997-05-20
,83494989
我需要保持它们所在的顺序并将它们保持在一行中(我可以解决行问题,但不知道如何解决顺序问题)
更新解决方案:
anubhava 的回答效果很好,我添加了一个关于从日期中删除时间的问题,Ed Morton 帮助解决了这个问题,这是完整的查询
awk 'BEGIN{RS=ORS=","} {sub(/ ..:..:..$/,"")} !seen[$0]++' test2.csv
【问题讨论】: