我需要比较两个二进制文件并以以下形式获取输出:
<fileoffset-hex> <file1-byte-hex> <file2-byte-hex>
对于每个不同的字节。所以如果file1.bin是
00 90 00 11
Run Code Online (Sandbox Code Playgroud)
以二进制形式并且file2.bin是
00 91 00 10
Run Code Online (Sandbox Code Playgroud)
我想得到类似的东西
00000001 90 91
00000003 11 10
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Linux 中做到这一点?我知道,cmp -l但它使用十进制表示偏移量,使用八进制表示字节,这是我想避免的。
diff有一个选项--recursive( -r) 可以在两个目录(其中的文件)之间进行比较。有没有办法diff忽略某些子目录(例如:.svn)?
$ diff -r src1/ src2/
Run Code Online (Sandbox Code Playgroud) 在 Linux 上,如何在两个 XML 文件之间生成差异?
理想情况下,我希望能够将其配置为严格的某些内容,或放松某些内容,例如空格或属性顺序。
我经常会关心这些文件在功能上是否相同,但 diff 本身使用起来会很烦人,尤其是在 XML 文件没有很多换行符的情况下。
例如,以下对我来说应该没问题:
<tag att1="one" att2="two">
content
</tag>
<tag att2="two" att1="one">
content
</tag>
Run Code Online (Sandbox Code Playgroud) 为了在 git 中比较二进制文件,我假设我需要设置一个 difftool。
什么 difftools 工作?怎么把参数放进去?
我想我有两个内容相同的目录,但我想检查一下。
另外,我想排除两个目录中的文件夹。
我该怎么做?
有没有办法让 rsync 打印所有不同文件的完整文件路径,而无需实际传输任何文件?
或者,我需要一种仅根据大小或上次修改时间的变化跨两棵树(通过 SSH)区分文件的方法。
vimdiff对于比较文件非常方便。但是,我经常在行长且行内差异相对较小的文件上使用它。
vimdiff 将正确突出一行内的差异(整行粉红色,不同字符红色)。在这些情况下,能够跳转到行内的下一个差异会很好。
您可以跳转到“下一个差异”( ]c),但这将跳转到下一个有差异的行。
有没有办法转到当前行内的下一个不同字符?
我需要比较两个文件(不是同一个文件的两个版本,但是它们由 git 跟踪,但这无关紧要)并且我想要一些彩色输出,我该如何实现?
$ diff file_1 file_2
1,9d0
< <script ... >
< // more code
< </script>
$
Run Code Online (Sandbox Code Playgroud)
上面的代码向我展示了这些文件之间的区别,但是没有任何颜色。对于难以阅读的较长差异。
或者,有没有办法让 git(我确实有很好的颜色输出)来区分两个不同的文件(而不是对文件的更改)?
OSX (10.7.5)
我有两个大小相同的文件,我需要做一个二进制差异来检查它们是否相同。
我目前正在运行,diff file1.img file2.img但处理我的 4 GB 文件需要很长时间。这是最有效的方法吗?
我diff: memory exhausted在尝试比较两个 27 GB 文件时出现错误,这些文件在具有 CentOS 5 和 4 GB RAM 的 Linux 机器上非常相似。这似乎是一个已知问题。
我希望这种基本实用程序有替代方案,但我找不到。我想该解决方案必须使用临时文件而不是内存来存储它需要的信息。
rdiffand xdelta,但它们更适合显示两个文件之间的更改,例如补丁,并且对于检查两个文件之间的差异没有那么有用。diff.vimdiff仅适用于较小文件的实用程序。bdiff但找不到适用于 Linux 的端口。除了将文件分成更小的部分之外还有什么想法吗?我有 40 个这样的文件,所以尽量避免将它们分解。