我曾想象比较两个相似目录的内容的最简单方法是
diff `ls old` `ls new`
Run Code Online (Sandbox Code Playgroud)
但我明白为什么这不起作用;diff
在命令行上收到一长串文件,而不是我希望的两个流。如何将两个输出直接传递给 diff?
我正在寻找可以比较目录和文件的东西,就像 Beyond Compare 为 Windows 所做的那样。
它主要用于源代码控制,但我也需要将其用于部署。
您可以diff
使用 meld轻松比较两个文本文件,使用 meld 效果更好:
如果你对图像使用 diff,你会得到一个这样的例子:
$ diff zivi-besch.tif zivildienst.tif
Binary files zivi-besch.tif and zivildienst.tif differ
Run Code Online (Sandbox Code Playgroud)
下面是一个例子:
原文来自http://commons.wikimedia.org/wiki/File:Tux.svg
编辑:
我为两个图像添加了白色背景,并应用了 GIMP 的“差异”过滤器来得到这个:
这是差异如何工作的一种非常简单的方法,但我可以想象出更好(也更复杂)的方法。
你知道一个像 meld 这样对文本有效的程序吗?
(如果存在可以给出百分比的程序(0% 相同的图像 - 100% 相同的图像)我也会对它感兴趣,但我正在寻找一个能给我视觉提示差异的程序。)
我试图diff
在目录的两个副本(例如工作和备份)中的所有同名文件之间找到s。例如,我可以在diff
两个文件中使用两个同名文件:
> diff d1/f.cpp d2/f.cpp
或者我可以找到目录之间的差异:
> diff d1 d2
但我怎样才能找到*.cpp
文件之间的差异呢?
> diff d1/*.cpp d2/*.cpp
似乎不起作用(出于明显的原因)。
[用循环解决可能很容易,但我正在努力寻找更优雅的方法]
我需要以一种简单的方式比较/差异/合并文件。在黑暗时代,当我是 Windows 用户时,我会使用 WinMerge。Ubuntu 中有哪些替代方案?
我必须能够做的事情:
我已经安装了 Meld 并发现它是一个很棒的比较工具。不幸的是,没有与 Nautilus 3.2 集成。这意味着,我无法右键单击文件并选择一个选项以在 Meld 中打开它们进行比较。
我在工具评论中看到该工具需要安装diff-ext包。这个包已经从 Ubuntu Universe 中删除了,我猜是因为 gtk 3.0. 即使我从源代码手动下载伪造diff-ext包,当我尝试配置它时,检查也会失败并显示以下消息:
checking for DIFF_EXT... configure: error: Package requirements (libnautilus-extension >= 2.14.0 gconf-2.0 >= 2.14.0 gnome-vfs-module-2.0 >= 2.14) were not met:
No package 'libnautilus-extension' found
No package 'gconf-2.0' found
No package 'gnome-vfs-module-2.0' found
Run Code Online (Sandbox Code Playgroud)
好的,所以从这个输出中我发现确实需要 gtk 2 才能将 diff 扩展安装到 nautilus。
现在,我的问题是:是否有可能将 Meld 集成到 Nautilus 中?或者,是否有任何其他基于差异的工具与当前的 Nautilus 集成?所以基于gtk3。
如果到目前为止有任何疑问,我正在使用 Ubuntu 11.10。
我有“test1.csv”,它包含
200,400,600,800
100,300,500,700
50,25,125,310
Run Code Online (Sandbox Code Playgroud)
和 test2.csv ,它包含
100,4,2,1,7
200,400,600,800
21,22,23,24,25
50,25,125,310
50,25,700,5
Run Code Online (Sandbox Code Playgroud)
现在
diff test2.csv test1.csv > result.csv
Run Code Online (Sandbox Code Playgroud)
不同于
diff test1.csv test2.csv > result.csv
Run Code Online (Sandbox Code Playgroud)
我不知道哪个是正确的顺序,但我想要别的东西,上面的两个命令都会输出类似的东西
2 > 100,4,2,1,7
3 2,3c3,5
4 < 100,300,500,700
5 < 50,25,125,310
6 \ No newline at end of file
7 ---
8 > 21,22,23,24,25
9 > 50,25,125,310
Run Code Online (Sandbox Code Playgroud)
我只想输出差异,因此 results.csv 应该是这样的
100,300,500,700
100,4,2,1,7
21,22,23,24,25
50,25,700,5
Run Code Online (Sandbox Code Playgroud)
我试过了diff -q
,diff -s
但他们没有成功。顺序无关紧要,重要的是我只想看到差异,没有 > 也没有 < 也没有空格。
grep -FvF
在较小的文件上而不是在大文件上做了技巧
第一个文件包含超过 500 万行,第二个文件包含 1300。
所以 results.csv 应该导致 …
我正在使用 meld 来可视化两个文件之间的差异。融合显示差异输出......像日语或中文?
知道会发生什么吗?语言环境问题?奇怪的是,当使用diff
或colordiff
在终端时,它们工作得很好!
谢谢!
我有两个相同的文件夹,但不相同(例如 Java 安装目录)。一个目录有一个额外的文件,一个文件已被更改。
是否有任何易于使用的工具来检查,或者我必须为此编写复杂的 bash 脚本?
PS 我正在寻找命令行工具,但如果您知道任何 GUI 工具,请分享知识。