我想删除文件中的重复条目。该文件如下所示:
xyabcd1:5!b4RlH/IgYzI:cvsabc
xyabcd2:JXfFZCZrL.6HY:cvsabc
xyabcd3:mE7YHNejLCviM:cvsabc
xyabcd1:5!b4RlH/IgYzI:cvsabc
xyabcd4:kQiRgQTU20Y0I:cvsabc
xyabcd2:JXfFZCZrL.6HY:cvsabc
xyabcd1:5!b4RlH/IgYzI:cvsabc
xyabcd2:JXfFZCZrL.6HY:cvsabc
xyabcd4:kQiRgQTU20Y0I:cvsabc
xyabcd2:JXfFZCZrL.6HY:cvsabc
如何使用shell脚本删除此文件中的重复项?
3条答案
按热度按时间mwg9r5ms1#
在排序手册页中:
-u,--与-c唯一,检查是否严格排序;如果不使用-c,则仅输出相等游程的第一个
应该做的。
g9icjywg2#
如果不想更改输入文件的顺序,可以执行以下操作:
或者,如果文件足够小(少于40亿行,以确保没有行重复40亿次),则可以执行以下操作:
根据awk的实现,您可能不必担心文件长度小于2^32行。问题是如果您看到同一行2^32次,您可能会在数组值中溢出一个整数,并且第2^32个(或第2^31个)重复行将被第二次输出。实际上,这不太可能是一个问题!
8nuwlpux3#
@shadyabhi回答正确,如果输出需要重定向到不同的文件,请用途:
排序-u输入文件-o输出文件