2
我有這樣一個CSV文件,刪除重複的逗號分隔字符串:(名爲test2.csv)如何用awk
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答案偉大的工作,我加了一個問題,關於從日期和埃德莫頓取出時間,幫助了,下面是完整的查詢
awk 'BEGIN{RS=ORS=","} {sub(/ ..:..:..$/,"")} !seen[$0]++' test2.csv
真棒,超級乾淨。我尋找其他方式來做到這一點,但他們看起來很複雜。 – moore1emu
現在我需要弄清楚如何從一個日期中刪除24小時的時間。一直試圖用正則表達式和sed,但似乎無法使它工作 – moore1emu
@ moore1emu如果你使用awk你不需要/想要sed或grep或其他任何東西,因爲awk可以在內部做任何其他工具可以做的有用的事情。在'!seen'之前,你只是想要'{sub(/ ..:..:.. $ /,「」)}'這樣的東西。 –