我只想比较两个文件的第一行,而不是整个文件。我该怎么做?我只需要第一行的解决方案,但是如果您可以指定行数,那将是一个更好的答案。
所以 diff 不会返回以下两个文件之间的差异:
a
1
2
Run Code Online (Sandbox Code Playgroud)
和:
a
3
4
Run Code Online (Sandbox Code Playgroud) 我是meldGnome 的视觉差异和合并工具的忠实粉丝。它并排显示两个文件(或目录)并突出显示它们的差异,我可以轻松选择要从一个文件移动到另一个文件的部分。
我正在寻找类似的工具,但它应该可以在(Linux)控制台上运行,例如。它不应该需要任何 X 服务器。也许使用 ncurses 接口。
有这样的工具吗?
从diff联机帮助页:
-b, --ignore-space-change
ignore changes in the amount of white space
-w, --ignore-all-space
ignore all white space
Run Code Online (Sandbox Code Playgroud)
由此,我推断-b和-w选项之间的区别必须-b是对空格类型(制表符与空格)敏感。然而,情况似乎并非如此:
$ diff 1.txt 2.txt
1,3c1,3
< Four spaces, changed to one tab
< Eight Spaces, changed to two tabs
< Four spaces, changed to two spaces
---
> Four spaces, changed to one tab
> Eight Spaces, changed to two tabs
> Four spaces, changed to two spaces
$ diff -b 1.txt …Run Code Online (Sandbox Code Playgroud) 我正在使用 Mercurial 分布式版本控制系统,我想知道如何配置它以使用 WinMerge 而不是它自己的内部差异工具。我已经将 WinMerge 作为合并工具,但我希望 Mercurial 在我键入时使用 WinMerge:
hg diff
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,还是我坚持使用 Mercurial 的内部差异工具?
Git 是否可以在两个存储之间执行差异?
例如,我有以下藏品:
stash@{2}: On peformanceFix#3: 20170728T164841
stash@{3}: On peformanceFix#2: 20170727T073349
Run Code Online (Sandbox Code Playgroud)
我想要两者之间的差异。
有没有办法从 Windows 资源管理器的上下文菜单中区分两个选定的文件?
我在 Windows 10 系统上安装了多个 Unbuntu WSL 2,我希望能够在它们之间运行 rsync 和 diff 等工具。是否可以挂载/查找这些其他副本的文件所在位置并对其运行 Linux 命令。我不想复制到该区域,只是能够“复制出来”。
为了使这一点更加具体,我有:
X:\WSL\U18.04_1 和 X:\WSL\U18.04_2
而且,我可以通过说以下内容进入第二个:
wsl -d X:\WSL\U18.04_2 -u myname
Run Code Online (Sandbox Code Playgroud)
这将在我的 U18.04_2 映像中的 home 方向上调出一个 bash shell。现在,我想有效地做到:
diff -rbitw /mnt/x/WSL/U18.04_1/home/myname /home/myname
Run Code Online (Sandbox Code Playgroud)
但当然,这不起作用,因为 /mnt/x/WSL/U18.04 实际上并不是一个文件系统(据我所知)。
我想递归地查看两个目录中不同的文件。Diff 可以做到这一点,但它向我显示了我不想要的逐行差异。是否有执行此操作的工具,或使用 Diff 执行此操作的方法(我阅读了手册页,但什么也没看到)?
我有两个 ODT 文档,它们的内容非常接近,我想比较它们以查看它们的相似程度。
最好的办法是有一个相似度百分比,如果不可能,另一种选择是至少有某种diff。
我正在运行Ubuntu Lucid。
解决方案:
我曾经odt2txt将文件转换为文本,然后曾经wdiff -i --statistics one.txt two.txt有一个差异以及统计数据,它给了我常用词的百分比(相似性)。
我有两个文件,当我与 diff 比较时,显示每一行都发生了变化。当我将它们与diff -w(忽略空格)进行比较时,它显示了我期望的一些最小变化。
显然每个文件中的空格之间存在一些差异,但我不知道它们是什么或如何找到它们。我尝试编辑文件以确保空格实际上是空格字符(而不是制表符),但我不确定还能做什么。
我使用 vim with:set list on来确认行尾没有尾随空格。
我也相信每个文件都有 Linux 行终止符,因为 vim 没有^M在行尾显示。