是否有免费的 Windows 命令行diff工具?
我需要比较两个二进制文件,看看它们是否不同。我对它们的不同之处不感兴趣,我只需要知道它们是否不同。
Windows 7 上的 Powershell 可以区分硬盘驱动器上的两个文件吗?
有时文本比较是有帮助的,但除此之外,仅仅判断一个文件是否与另一个文件相同是有帮助的。谢谢。
更新:
在 UNIX 上,它是
diff file1.dat file2.dat
Run Code Online (Sandbox Code Playgroud)
在 Powershell 上,如果我创建包含内容“hello”的 file1.txt 并将此文件复制到 file2.txt,然后键入
diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
结果是
InputObject SideIndicator
----------- -------------
file2.txt =>
file1.txt <=
Run Code Online (Sandbox Code Playgroud)
如果我将 file2.txt 的内容更改为“hello world”并再次进行 diff,则 diff'ing 的结果是相同的。
我有一个文件,其中包含来自服务器的文件列表,以及一个与该清单进行比较的本地文件夹。显然,我执行 'ls -1 > listing_local' 然后将该文件与 listing_server 进行比较。
但是是否可以将清单和 ls 的输出立即与 diff 命令进行比较?
语境:
假设我有两个视频文件——从 DVD 或 DV 磁带中翻录。它们都是 MKV 或 AVI 格式,一些标准容器或其他格式,但被单独翻录,具有不同的编码器、不同的比特率和不同的分辨率。视频是不同的镜头,但有一段镜头是两个轨道共有的(一段具有完全相同的源材料,但正如我所说,每个文件的编码器/分辨率/比特率都不同)。
例如:文件 1 有一个从 00:10 到 00:20 的片段,它与文件 2 中从 10:00 到 10:10 的片段具有相同的源材料。
问题:
是否有一个程序可以将两个文件都输入到其中(如有必要,我可以先将它们重新混合成不同的容器格式),它甚至可以粗略地告诉我视频相同片段的起点和终点?即,我可以将上述两个示例文件提供给它,它会告诉我素材来自同一来源的两个范围?
理想情况下,我想要一些可以让我调整相似性检测的“置信度”的东西,这样我就可以提供它,比如说,一个非常低分辨率、低比特率的文件和一个高清文件,并放松它的信心它仍然在这些不同质量的输入之间检测到相似的片段。
这个问题的答案很可能是“没有大量工作就不可能”,但我想无论如何我都会问。
我有 2 个文件要不同。生成文件 B 在文件 A 中附加一些新行。我想使用diff.
我想避免打印出下面输出的“>”字符和“10a11,14”。
阅读diffI的手册页可以看到您可以指定结果的格式( LFMT ),但我正在努力制作一些有用的东西。
你能帮我删除那些我不需要的字符吗?
问候
AFG
diff --left-column A.txt B.txt
10a11,14
> TXT : some text
> some text
> some text
> some text
Run Code Online (Sandbox Code Playgroud) 为了在两台计算机之间共享配置文件,我通过我的 gmail 帐户将文件通过电子邮件发送给自己。当我在第二台计算机上加载 conf 时,程序无法读取每一行。怀疑换行符有问题(dos vs unix 风格),我在 gvim 中打开了文件。我没有像我怀疑的那样在那里看到任何 ^M。'set list' 没有显示任何奇怪的东西 - 只是文件的文本,每一行都按我的预期以 '$' 结尾。它看起来非常好。文件的猫看起来就像我期望的那样。
出于绝望,我将文件移开,并在拆分的 vim 会话中手动重新键入文件的内容(只有大约 20 行)。我对这两个文件运行了 gvim -d ,结果没有区别。
我运行了使用配置文件的程序,果然,它现在能够很好地读取新输入的文件。
我对这两个文件进行了 md5sum,它们确实有不同的总和。我对原始文件和新键入的文件进行了比较,结果显示文件的每一行都不同。但我看不出输出有什么不同。
所以,我很好奇:我可以使用什么工具来查看这两个文件之间的差异?gvim -d 显示没有差异,diff 显示它们都不同,但输出看起来相同。
如果我可以附上这两个文件,我会的。
我正在尝试使用 (well) 区分两个目录diff。但是,diff实际上遵循符号链接并比较目标文件之间的差异。我似乎找不到不这样diff做的方法。相反,我想知道的是目标是否相同(或不同)。换句话说,如果符号链接指向同一个文件,(在我看来)它们是相同的,否则它们是不同的,这就是我想diff在递归调用期间遇到符号链接时告诉我的全部内容。
我试过在网上查找,但我要么找到与单独处理符号链接有关的主题,要么完全忽略它们。
我正在寻找一种在文本文件发生更改(Windows 7)时收到通知的方法,并在发生此类更改时提供文件差异。例如,文本编辑器 Notepad++ 执行此操作的一部分,通知我外部更改(在当前打开的文件中),并让我选择从磁盘重新加载它或保留当前打开的内容:

但我想看看新版本中所做的更改(如果有的话),所以这还不够。有没有一种相对简单的方法来实现这一点,也许是 Notepad++ 的插件或其他具有此功能的文本编辑器?(实际上,我记得文本编辑器SlickEdit有这个功能,但也许还有另一种解决方案)
有一个与此类似的现有问题根本没有在适当的上下文(需要比较的大量数据)中得到回答,所以我在这里再次尝试。
我正在使用SuperDuper在外部驱动器上维护 Mac 内部硬盘驱动器的克隆副本。由于该程序内置的数据完整性措施,您的目标卷可能需要比源驱动器多得多的空间,但这不是重点。
我想做的是在音量级别上运行“文件夹”比较。最简单地说,我本质上希望diff -r /Volumes/MacintoshHD /Volumes/BackupDrive有一个像样的导航界面来处理结果。最大的问题是这些 1TB 磁盘包含大约800 GB数据和大约310 万个单独文件。我尝试过很多 diff 工具,但似乎没有一个能够处理如此大量的数据。以下是完全失败的应用程序的简短列表:
diff(命令行)。由于它将结果传输到控制台,这比其他方法更“可靠”,但它会产生大量不可用的文本输出(没有用于“浏览”差异的人性化界面。)
FileMerge(来自 Apple 的开发工具)。对于较小的文件集,界面工作得很好,但在如此巨大的规模上,它会在尝试扫描时挂起几个小时,并最终在完成之前崩溃。
万花筒。在没有准确进度条的情况下扫描多个小时后,它最终会显示 A/B 比较窗口,但如果您尝试导航,它会随机完全删除“B”面,迫使您重新开始。(这是毫无意义的,因为它只会再次删除 B 面。)
阿拉克西斯合并。我尝试过的所有事情中最接近的。它最终确实产生了比较,但生成它和导航它的速度明显慢到无法忍受的程度。当您谈论开始使用数据集之前需要 18 小时的扫描时间,并且每次尝试更改差异中的目录时都会挂起 20-40 秒,速度和稳定性会产生巨大的差异。
所以我的问题是:是否有专门针对大规模比较而定制的差异工具?人们“通常”如何比较以三位数千兆字节为单位的大型数据集?是否有我的搜索尚未找到的取证工具?特别是,我只关心差异,而不关心相同部分。我预计变化的百分比相对较小,可能是 1-5%,因此“抛弃”相似性的工具对于如此大的数据集将具有巨大的优势。
diff ×10
unix ×3
comparison ×2
bash ×1
command-line ×1
hard-drive ×1
linux ×1
ls ×1
notepad++ ×1
patch ×1
powershell ×1
shell ×1
text-editors ×1
textfiles ×1
video ×1
windows-7 ×1