我想比较两个大小不接近 1Gb 的大文件。
Kompare
当文件负载很大时崩溃。我的配置Kompare
如下图所示:
我想以一种Kompare
对于不熟悉的人来说可以管理的方式(即清晰并用颜色和线条显示)来呈现差异Terminal
。
我也尝试过使用以下命令:
diff --speed-large-files a.file b.file
按照建议这里:
有没有办法将 diff 的输出转储到文件中,以便稍后可以由另一个程序读取。
答案1
有没有办法将 diff 的输出转储到文件中,以便稍后可以由另一个程序读取?
是的!
diff --speed-large-files a.file b.file > diffoutput
这将创建一个名为 diffoutput 的文件,并将 的输出写入diff
其中。
我想以 Kompare 所做的方式呈现差异(即清晰并用颜色和线条显示),以便不熟悉终端的人可以管理。
我认为 Kompare 不会为此目的而努力。 (或者,至少不是直接进行比较。)我尝试比较两个 3MB 的文件,它需要 150 MB 的内存。我假设如果我尝试比较两个 1GB 文件,则需要大约 50GB。
这里有一些想法:
- 将文件分开。
split -l 5000 filename
可以将名为 filename 的文件拆分为 5000 行块。 - 删除不重要的行。假设,如果您只关心其中包含 FOOBAR 的行,则可以运行
grep FOOBAR input > output
并仅获取包含 FOOBAR 的行。 使用一些外壳。这个命令:
colordiff --suppress-common-lines -y file1.ext file2.ext | aha > test.html
将比较两行;为不同的线条应用颜色;删除公共线;并排显示它们;并创建一个可以在 Web 浏览器中打开的 HTML 文件。