我有一个csv文件在两列中有超过10000行。我必须删除第1列中的重复条目。 样本输入
col1,col3
od1,pd1
od1,pd4
od2,pd1
od2,pd2
od3,pd6
od3,pd688
od3,pg7
示例输出
col1,col3
od1,pd1
,pd4
od2,pd1
,pd2
od3,pd6
,pd688
,pg7
答案 0 :(得分:1)
awk
可以使用关键数组col1
轻松处理此问题:
awk 'BEGIN{FS=OFS=","} seen[$1]++{$1=""} 1' file
col1,col3
od1,pd1
,pd4
od2,pd1
,pd2
od3,pd6
,pd688
,pg7
答案 1 :(得分:0)
您可以使用awk轻松完成此操作
命令是
awk -F"," '{if(!a[$1]++) print $0;}' file.csv
根据您的csv格式使用-F标志设置分隔符。
答案 2 :(得分:0)
如果您的文件已排序(按第一个字段),那么
$ cat f
col1,col3
od1,pd1
od1,pd4
od2,pd1
od2,pd2
od3,pd6
od3,pd688
od3,pg7
# Either
$ awk 'BEGIN{FS=OFS=","}$1!=p{p=$1;print;next}{$1=""}1' f
col1,col3
od1,pd1
,pd4
od2,pd1
,pd2
od3,pd6
,pd688
,pg7
# Or
$ awk 'BEGIN{FS=OFS=","}$1==p{$1="";print;next}{p=$1}1' f
col1,col3
od1,pd1
,pd4
od2,pd1
,pd2
od3,pd6
,pd688
,pg7