我有一个70GB的文件,其中包含4亿多行(JSON)。我的最终目标是删除重复的行,以便我拥有该文件的完全“重复数据删除”版本。我正在具有8cores和64gb ram的计算机上执行此操作。
我还在此线程'how to sort out duplicates from a massive list'上进行扩展。
我尝试过的事情:
sort -u largefile > targetfile
似乎不起作用。我认为文件太大。 当前方法:
for X in *; do sort -u --parallel=6 $X > sorted/s-$X; done
现在我有80个单独排序的文件。我正在尝试使用sort -m重新合并/删除它们。这似乎无能为力,因为文件/行大小最终都相同。
由于sort -m似乎不起作用,我目前正在尝试:
cat *.json | sort > big-sorted.json
然后我将尝试使用
uniq big-sorted.json > unique-sorted.json
根据过去的经验,我认为这不会奏效。
这里最好的方法是什么?我现在如何重新合并文件并删除任何重复的行。
更新1 我怀疑,猫* |排序> bigfile无效。它只是将所有内容复制到以前的排序方式(在单个文件中)到一个文件中。
更新2: 我还尝试了以下代码:
cat *.json | sort --parallel=6 -m > big-sorted.json
结果与先前的更新相同。 我没有想法。
谢谢!
答案 0 :(得分:0)
经过反复试验,我找到了解决方法:
length