gpt4 book ai didi

bash - 如何使用awk删除重复的逗号分隔字符串

转载 作者:行者123 更新时间:2023-11-29 09:37:59 33 4
gpt4 key购买 nike

我有一个这样的 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

最佳答案

你可以只使用这个 awk:

awk 'BEGIN{RS=ORS=","} !seen[$0]++' test2.csv
lastname,firstname,83494989,1997-05-20,2015-05-07 15:30:43,Sentence Skills 104,Elementary Algebra 38,

关于bash - 如何使用awk删除重复的逗号分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30742556/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com