我想从文件中删除重复的条目。该文件如下所示:
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脚本从此文件中删除重复项?
答案 0 :(得分:4)
从排序联系人页面:
-u, - 唯一 用-c,检查严格的订购;没有-c,只输出相等的第一个
sort -u yourFile
应该这样做。
答案 1 :(得分:2)
如果您不想更改输入文件的顺序,可以执行以下操作:
$ awk '!v[$0]{ print; v[$0]=1 }' input-file
或者,如果文件足够小(少于40亿行,以确保没有行重复40亿次),您可以这样做:
$ awk '!v[$0]++' input-file
根据awk的实现,您可能不必担心文件长度小于2 ^ 32行。关注的是,如果您看到相同的行2 ^ 32次,您可能会溢出数组值中的整数,并且第二次输出重复行的2 ^ 32nd实例(或2 ^ 31st)。实际上,这不太可能是一个问题!