标签: diff

如何区分两个命令的输出?

我曾想象比较两个相似目录的内容的最简单方法是

diff `ls old` `ls new`
Run Code Online (Sandbox Code Playgroud)

但我明白为什么这不起作用;diff在命令行上收到一长串文件,而不是我希望的两个流。如何将两个输出直接传递给 diff?

command-line diff

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

文件目录比较工具?

我正在寻找可以比较目录和文件的东西,就像 Beyond Compare 为 Windows 所做的那样。

它主要用于源代码控制,但我也需要将其用于部署。

software-recommendation diff

154
推荐指数
11
解决办法
20万
查看次数

图像是否存在“差异”?

您可以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 image-processing

62
推荐指数
3
解决办法
5万
查看次数

Diff 报告不同,但两行相同

我比较了 2 个文件并得到了

1c1
< 1
---
> 1
Run Code Online (Sandbox Code Playgroud)

两个文件都只包含“1”。这有什么不同?

bash diff

56
推荐指数
2
解决办法
9万
查看次数

如何跨目录区分多个文件?

我试图diff在目录的两个副本(例如工作和备份)中的所有同名文件之间找到s。例如,我可以在diff两个文件中使用两个同名文件:

> diff d1/f.cpp d2/f.cpp

或者我可以找到目录之间的差异:

> diff d1 d2

但我怎样才能找到*.cpp文件之间的差异呢?

> diff d1/*.cpp d2/*.cpp

似乎不起作用(出于明显的原因)。

[用循环解决可能很容易,但我正在努力寻找更优雅的方法]

10.04 diff

24
推荐指数
3
解决办法
9万
查看次数

WinMerge 的最佳选择

我需要以一种简单的方式比较/差异/合并文件。在黑暗时代,当我是 Windows 用户时,我会使用 WinMerge。Ubuntu 中有哪些替代方案?

我必须能够做的事情:

  1. 逐行查看 2 个文件,并突出显示差异
  2. 可以选择将这些文件合并在一起

alternative software-recommendation diff 14.04

22
推荐指数
3
解决办法
5万
查看次数

如何使用 Nautilus“区分”两个文件?

我已经安装了 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。

gnome nautilus diff gtk3

17
推荐指数
3
解决办法
7834
查看次数

两个大文件的区别

我有“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 -qdiff -s但他们没有成功。顺序无关紧要,重要的是我只想看到差异,没有 > 也没有 < 也没有空格。

grep -FvF 在较小的文件上而不是在大文件上做了技巧

第一个文件包含超过 500 万行,第二个文件包含 1300。

所以 results.csv 应该导致 …

grep diff sed awk

15
推荐指数
2
解决办法
6865
查看次数

meld 以不可读的字母显示输出(日语/中文?)

我正在使用 meld 来可视化两个文件之间的差异。融合显示差异输出......像日语或中文?

知道会发生什么吗?语言环境问题?奇怪的是,当使用diffcolordiff在终端时,它们工作得很好!

谢谢!

Meld 显示不可读的输出

diff

15
推荐指数
2
解决办法
6354
查看次数

两个目录之间的区别?

我有两个相同的文件夹,但不相同(例如 Java 安装目录)。一个目录有一个额外的文件,一个文件已被更改。

是否有任何易于使用的工具来检查,或者我必须为此编写复杂的 bash 脚本?

PS 我正在寻找命令行工具,但如果您知道任何 GUI 工具,请分享知识。

command-line diff tools

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