有没有一种巧妙的方法来查看两个二进制文件之间的区别?它们大多相同,但更改了一些字节,并且其中一个文件在某些地方插入了序列。
xxd如果仅更改字节而不插入字节,则区分 的输出将起作用。
当我尝试跑步时
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
Run Code Online (Sandbox Code Playgroud)
我得到了未知选项(我已经通过 安装了 git apt-get install git)
我曾经diff --from-file将我的 Riak dev1 配置与其他三个配置进行比较。
diff --from-file ~/riak/dev/dev1/etc/app.config \
~/riak/dev/dev2/etc/app.config \
~/riak/dev/dev3/etc/app.config \
~/riak/dev/dev4/etc/app.config
Run Code Online (Sandbox Code Playgroud)
它显示配置仅在端口号设置(8091、8092、8093、8094)上有所不同。
很难判断一个文件在哪里结束,下一个文件从哪里开始,因为输出不包含文件名。
11c11
< {http, [ {"127.0.0.1", 8091 } ]},
---
> {http, [ {"127.0.0.1", 8092 } ]},
15c15
< %{https, [{ "127.0.0.1", 8091 }]},
---
> %{https, [{ "127.0.0.1", 8092 }]},
26c26
< {handoff_port, 8101 },
---
> {handoff_port, 8102 },
54c54
< {pb_port, 8081 },
---
> {pb_port, 8082 },
11c11
< {http, [ {"127.0.0.1", 8091 } ]},
---
> {http, [ …Run Code Online (Sandbox Code Playgroud) 在 emacs 中,我们可以并排查看两个文本文件。
在一些更简单/更轻的应用程序中是否也可以这样做less?
只看,不编辑。
我基本上有一个a包含大量图像的目录。现在我想检查所有这些图像是否都在目录中b。关键是,很多图像b不是直接b在子目录中,而是在子目录中。
另外我不想依赖文件名,而是依赖文件内容。
(因为 bash 标签:我更喜欢 bash 答案,但如果是其他语言或者使用其他程序,也可以)
使用 比较 2 个文件时diff,original文件作为第一个参数提供,new(修改后的)作为第二个参数提供。
diff original new
Run Code Online (Sandbox Code Playgroud)
据推测,这种排序背后的逻辑是为了展示如何使用从左到右的约定来将原始内容转换为新的时间流逝方式。
我对这个逻辑有问题。当我比较两个文件时,我直觉地使用逆表示法:
diff new original
Run Code Online (Sandbox Code Playgroud)
这样我就可以在查看更改后,将新文件转换为旧文件,从而将其“修补”到新版本。
cat new > original
Run Code Online (Sandbox Code Playgroud)
但是使用“我的”倒置符号令人困惑,因为差异显示+用于删除和-添加。
我该如何解决这个问题?
被git diff有关diff?
是git diff基于diff?
是的命令行语法git diff类似于那个的diff?学习一种对使用另一种有很大帮助吗?
它们的输出文件是否遵循相同的格式?它们可以同时被git patch和 使用patch吗?(有git patch吗?和 有什么关系patch?)
谢谢。
我正在使用diff查找从当前文件到目标的差异。
我的命令是
diff -w --from-file /tmp/new_list.txt /tmp/protected_client.txt
输出是
8c8,9
> VM-E
Run Code Online (Sandbox Code Playgroud)
我使用以下方法过滤了它:
diff -w --from-file /tmp/new_list.txt /tmp/protected_client.txt | tail -n +2 | sed 's/> //g'
伟大的。现在,如果我有多个差异,我会看到:
2d1
< esxi02
3a3
> psc-dr
Run Code Online (Sandbox Code Playgroud)
两个问题。这些值是什么。我知道<的手段价值是存在的from-file,但不是在to-file和>是相反的,
第二个问题:我该如何摆脱这些代码2d1和3a3或任何出现。
我有两个 ~1 GB 的文件,我想对其进行并排比较。我尝试过的解决方案:
diff - 工作迅速,但不会并排输出。diff -y或sdiff- 这会并排输出,但会输出整个文件 - 不仅仅是更改,因此无法找到它们。icdiff - 太慢了(它是用 Python 编写的,所以也就不足为奇了)。ydiff - 没有实际尝试过,但它也是用 Python 编写的,所以我认为它也会很慢。vimdiff - 成功加载文件并实际显示并排差异,但配色方案使其无法读取,并且您期望从正常程序中获得的正常内容不起作用,例如向上滚动。我在外部硬盘上创建了一个备份。然后我创建了另一个备份并将所有文件复制到另一个外部硬盘。我想检查diff是否所有内容都已复制:
user@user:/media/user$ diff -r backup backup1
Nur in backup1/home/user: file.xls.
Nur in backup1/home/user: file.zip.
Run Code Online (Sandbox Code Playgroud)
(“nur”在德语中是“仅”的意思。)
差异显示两个不存在的文件:
user@user:/media/user$ file backup1/home/user/file.xls.
backup1/home/user/file.xls.: cannot open backup1/home/user/file.xls. (No such file or directory)
user@user:/media/user$ file backup1/home/user/file.zip.
backup1/home/user/file.zip.: cannot open backup1/home/user/file.zip. (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
diff 是如何显示这两个文件的,我该如何修复 diff 的输出?两个外部硬盘驱动器上的文件系统都是 LUKS。