我有一个40 MB的csv文件,有50,000条记录.它是一个巨大的产品列表.每行有近20个字段.[Item#,UPC,Desc等]
我怎么能够,
a)查找并打印重复的行.[这个文件是一个很大的附加文件,所以我需要删除文件中包含的多个标题,所以我想知道先重复的确切行.
b)根据列查找并打印重复行.[查看UPC是否分配给多个产品]
我需要在服务器上运行命令或脚本,并且我安装了Perl和Python.即使是bash脚本或命令也适合我.
我不需要保留行的顺序.等等
我试过了,
sort largefile.csv | uniq -d
得到重复,但我没有得到预期的答案.
理想情况下,我想要bash脚本或命令,但如果任何人有任何其他建议,那也会很棒.
谢谢
请参阅:在Stack Overflow上从Python中删除大文件中的重复行
在Perl中查找并打印重复的行:
perl -ne 'print if $SEEN{$_}++' < input-file
Run Code Online (Sandbox Code Playgroud)
在Perl中查找并打印具有重复列的行 - 假设第5列中的字段用逗号分隔:
perl -F/,/ -ane 'print if $SEEN{$F[4]}++' < input-file
Run Code Online (Sandbox Code Playgroud)
小智 8
请尝试以下方法:
# Sort before using the uniq command
sort largefile.csv | sort | uniq -d
Run Code Online (Sandbox Code Playgroud)
uniq是一个非常基本的命令,只报告彼此相邻的唯一性/重复项.