【发布时间】:2017-01-06 09:16:20
【问题描述】:
我有一个 12Gb 的组合哈希列表文件。我需要找到其中的重复项,但我遇到了一些问题。
使用cat *.txt > _uniq_combined.txt 合并了一些 920(uniq'd)列表,从而产生了一个巨大的哈希列表。合并后,最终列表将包含重复项。
我以为我已经用 awk '!seen[$0]++' _uniq_combined.txt > _AWK_duplicates.txt && say finished ya jabroni 解决了这个问题
awk '!seen[$0]++' _uniq_combined.txt > _AWK_duplicates.txt 生成一个大小为4574766572 字节的文件。
有人告诉我,不可能有这么大的文件,然后再试一次。
sort _uniq_combined.txt | uniq -c | grep -v '^ *1 ' > _SORTEDC_duplicates.txt 生成一个大小为1624577643 字节的文件。明显更小。
sort _uniq_combined.txt | uniq -d > _UNIQ_duplicates.txt 生成一个大小为1416298458 字节的文件。
我开始认为我不知道这些命令的作用,因为文件大小应该相同。
同样,目标是查看一个巨大的列表并保存多次看到的哈希实例。这些结果中哪一个(如果有)是正确的?我以为他们都做同样的事情。
【问题讨论】:
-
好吧,最后两个应该不同,因为第一个包含相同的行数,另一个没有。
-
@MladenJablanović 我不确定我是否在关注。他们都对原始文件进行排序或操作 -
_uniq_combined.txt,不是吗? -
您是否尝试通过
diff或cmp来区分_SORTEDC_duplicates.txt和_UNIQ_duplicates.txt?如果它说明了什么,请跟踪原始文件中不同的行。 -
@oliv 我不熟悉 diff,这能告诉我什么?
-
@dsp_099 它将输出两个文件之间不同的行...
标签: bash sorting awk duplicates