我有几个csv看起来像这样:
我有几个大文本文件(csv),在某些行上有冗余条目。也就是说,由于它们被合并的方式,某个字段通常具有相同的值两次或三次。但它并不总是以相同的顺序。
BWTL,NEWSLETTER,NEWSLETTER
BWTL,NEWSLETTER,R2R,NEWSLETTER
MPWJ,OOTA主机,OOTA主机,OOTA主机
OOTA主机,ITOS,OOTA主机
等。彼此相邻的条目很容易用sed
进行清理sed -i“”的/ NEWSLETTER,NEWSLETTER / NEWSLETTER / g'* .csv
是否有类似的快速方法来修复其他副本?
答案 0 :(得分:0)
您可以执行类似
的操作sed -i "" 's/^\(.*NEWSLETTER.*\), NEWSLETTER/\1/g' eNewsletter.csv_new.csv
通过捕获所有内容到第二个NEWSLETTER ^
表示开头行
\(
和\)
分隔捕获,.*
表示任何内容。然后它将匹配的字符串替换为仅捕获的部分。
答案 1 :(得分:0)
#!/bin/bash
awk -F"," '
{
delete a
for(i=1;i<=NF;i++){
gsub(/^ +| +$/,"",$i)
if( !( $i in a) ) {
printf "%s,",$i
a[$i]
}
}
print ""
}' file
答案 2 :(得分:0)
尝试:
# Sort before using the uniq command
sort largefile.csv | sort | uniq -d
虽然,这只会报告彼此相邻的重复项。