标签: diff

如何在 Linux 中比较二进制文件?

我需要比较两个二进制文件并以以下形式获取输出:

<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但它使用十进制表示偏移量,使用八进制表示字节,这是我想避免的。

linux diff binary-files

374
推荐指数
9
解决办法
64万
查看次数

执行 `diff -r` 时忽略 .svn

diff有一个选项--recursive( -r) 可以在两个目录(其中的文件)之间进行比较。有没有办法diff忽略某些子目录(例如:.svn)?

$ diff -r src1/ src2/
Run Code Online (Sandbox Code Playgroud)

diff ignore svn recursive

105
推荐指数
2
解决办法
4万
查看次数

如何区分两个 XML 文件?

在 Linux 上,如何在两个 XML 文件之间生成差异?

理想情况下,我希望能够将其配置为严格的某些内容,或放松某些内容,例如空格或属性顺序。

我经常会关心这些文件在功能上是否相同,但 diff 本身使用起来会很烦人,尤其是在 XML 文件没有很多换行符的情况下。

例如,以下对我来说应该没问题:

<tag att1="one" att2="two">
  content
</tag>

<tag att2="two" att1="one">
  content
</tag>
Run Code Online (Sandbox Code Playgroud)

linux xml diff

94
推荐指数
5
解决办法
9万
查看次数

如何在 git 中区分二进制文件?

为了在 git 中比较二进制文件,我假设我需要设置一个 difftool。

什么 difftools 工作?怎么把参数放进去?

diff git difftool

52
推荐指数
4
解决办法
4万
查看次数

diff 目录,不包括里面的一个文件夹

我想我有两个内容相同的目录,但我想检查一下。

另外,我想排除两个目录中的文件夹。

我该怎么做?

linux bash diff

48
推荐指数
1
解决办法
4万
查看次数

如何打印使用 rsync 更改的文件?

有没有办法让 rsync 打印所有不同文件的完整文件路径,而无需实际传输任何文件?

或者,我需要一种仅根据大小或上次修改时间的变化跨两棵树(通过 SSH)区分文件的方法。

linux bash diff rsync

48
推荐指数
5
解决办法
7万
查看次数

vimdiff:跳转到行内的下一个差异?

vimdiff对于比较文件非常方便。但是,我经常在行长且行内差异相对较小的文件上使用它。

vimdiff 将正确突出一行内的差异(整行粉红色,不同字符红色)。在这些情况下,能够跳转到行内的下一个差异会很好。

您可以跳转到“下一个差异”( ]c),但这将跳转到下一个有差异的行。

有没有办法转到当前行内的下一个不同字符?

diff vim comparison vimdiff

47
推荐指数
2
解决办法
3万
查看次数

如何为 OSX 差异启用彩色输出?

我需要比较两个文件(不是同一个文件的两个版本,但是它们由 git 跟踪,但这无关紧要)并且我想要一些彩色输出,我该如何实现?

$ diff file_1 file_2

1,9d0
< <script ... >
<     // more code
< </script>

$ 
Run Code Online (Sandbox Code Playgroud)

上面的代码向我展示了这些文件之间的区别,但是没有任何颜色。对于难以阅读的较长差异。


或者,有没有办法让 git(我确实有很好的颜色输出)来区分两个不同的文件(而不是对文件的更改)?

OSX (10.7.5)

terminal diff git macos

42
推荐指数
5
解决办法
2万
查看次数

如何在 Linux 下对两个相同大小的文件进行二进制差异?

我有两个大小相同的文件,我需要做一个二进制差异来检查它们是否相同。

我目前正在运行,diff file1.img file2.img但处理我的 4 GB 文件需要很长时间。这是最有效的方法吗?

linux diff

39
推荐指数
3
解决办法
6万
查看次数

如何在 Linux 上区分大文件

diff: memory exhausted在尝试比较两个 27 GB 文件时出现错误,这些文件在具有 CentOS 5 和 4 GB RAM 的 Linux 机器上非常相似。这似乎是一个已知问题。

我希望这种基本实用程序有替代方案,但我找不到。我想该解决方案必须使用临时文件而不是内存来存储它需要的信息。

  • 我尝试使用rdiffand xdelta,但它们更适合显示两个文件之间的更改,例如补丁,并且对于检查两个文件之间的差异没有那么有用。
  • 尝试过VBinDiff,但它是一个可视化工具,更适合比较二进制文件。我需要一些可以像常规diff.
  • 还有许多其他实用程序,例如vimdiff仅适用于较小文件的实用程序。
  • 我也读过有关 Solaris 的文章,bdiff但找不到适用于 Linux 的端口。

除了将文件分成更小的部分之外还有什么想法吗?我有 40 个这样的文件,所以尽量避免将它们分解。

linux diff

38
推荐指数
2
解决办法
3万
查看次数

标签 统计

diff ×10

linux ×6

bash ×2

git ×2

binary-files ×1

comparison ×1

difftool ×1

ignore ×1

macos ×1

recursive ×1

rsync ×1

svn ×1

terminal ×1

vim ×1

vimdiff ×1

xml ×1