我有一个大文件,每行包含JSON一行,共1563888行。为了重复删除此文件中的行,我一直在使用shell一线式sort myfile.json | uniq -u
。
对于较小的文件,此方法有效,并且sort myfile.json | uniq -u | wc -l
大于0。由于正在运行的文件大小,sort myfile.json | uniq -u | wc -l
会产生0行,而如果我使用head -n500000 myfile.json | sort | uniq -u | wc -l
则有效。
bash是否有一种简单的方法来处理如此大的文件?还是有一种干净的方法将文件分块?我最初使用的是bash而不是Python,因为这似乎是一种更轻松的方法来快速验证事情,尽管现在我正在考虑将此任务移回Python。
答案 0 :(得分:1)
根据Kamil Cuk,让我们尝试以下解决方案:
sort -u myfile.json
文件真的是JSON吗?排序JSON文件可能导致可疑的结果。您也可以尝试按照Mark Setchell的建议拆分文件。然后,您可以对每个拆分文件进行排序,并对结果进行排序。各种处理都应使用sort -u
。
如果确实是JSON文件,请从myfile.json提供一些示例。仅在使用sort -u
时,我们在这里介绍您的结果。