Bash 如何比较两个巨大的文本文件(每个超过50gb)?
我有两个巨大的文本文件,想找出它们之间的区别? 执行此任务的fast命令/实用程序/脚本是什么 我尝试使用Bash 如何比较两个巨大的文本文件(每个超过50gb)?,bash,unix,text-files,diff,file-comparison,Bash,Unix,Text Files,Diff,File Comparison,我有两个巨大的文本文件,想找出它们之间的区别? 执行此任务的fast命令/实用程序/脚本是什么 我尝试使用unix diff,但对于大型文件,它失败了。它向我显示“权限被拒绝” 另外,我尝试了unix bdiff(正如我读到的,这对大型文件很有用),但我没有完成测试,因为它显示“bdiff:command not found” 另外,我尝试了windowsfc(文件比较),但不知道如何在新的文本文件中显示输出。cmd中的结果输出,我无法完全理解 任何建议都会对我有很大帮助。 在这件事上请帮助我
unix diff
,但对于大型文件,它失败了。它向我显示“权限被拒绝”
另外,我尝试了unix bdiff
(正如我读到的,这对大型文件很有用),但我没有完成测试,因为它显示“bdiff:command not found”
另外,我尝试了windowsfc
(文件比较),但不知道如何在新的文本文件中显示输出。cmd中的结果输出,我无法完全理解
任何建议都会对我有很大帮助。
在这件事上请帮助我
非常感谢。您可以使用
--speed large files
选项尝试diff
:
diff --speed-large-files file1 file2
cmp
是另一种选择(逐字节比较文件):
如果
fc
适合您,您可以使用以下命令将fc
的输出发送到文本文件:
fc file1 file2 >output.txt
diff
是一种方法,但您必须确保您有权访问这些文件。文件保存在哪里?文件的权限是什么?请不要问。@Munir我将所有测试文本文件放在同一个文件夹中,并且对该文件夹具有完全访问权限。对于小文件,它可以工作,但是对于大文件,它会给我这个错误。你确定大文件与小文件具有相同的权限吗?我建议询问。@Eugene当我尝试它时,系统会挂起!这不是我想要的。我想看看所有的不匹配。对于大约20GB的文件,我至少在WSL上得到了diff:stack overflow
。谢谢。我现在尝试了一下,我在新文件中看到了结果,但是,似乎它并没有键入所有不匹配项!为什么?对于大文件来说,它工作得很好,但是,为什么不键入所有不匹配的内容呢?我想要的正是diff所做的。还有,为什么会有:Resync失败。文件太不一样了。所以当有很多不匹配的地方时,它只是试图找到(相似性)并停止比较!我不想那样。我想要一个工具,它可以将所有差异准确地输入diff实用程序。
fc file1 file2 >output.txt