Questions tagged «diff»

diff-命令行工具,用于显示两个文件或两个目录中每个对应文件之间的差异。

4
区分多个文件,如果不相等则为true
我有许多文件,我想检查所有那些文件是否具有相同的内容。 我可以使用哪个命令行来检查? 用法可能类似于: $ diffseveral file1 file2 file3 file4 结果: All files equals 要么 Files are not all equals
18 bash  diff 

12
如何比较色差输出?
我想有条件地格式化Unix文件,我目前正在处理diff命令,并且想知道是否可以格式化文本文件。diff命令输出。 例: 匹配的值应显示为绿色。 不匹配的值应显示为红色。 假设我有两个文件file1,file2并且我的命令是diff file1 file2。 现在我想假设输出包含5个不匹配项,那么这些不匹配项应以红色显示。如何使用unix实现? 简而言之,“对于不匹配的值,将diff命令的输出颜色更改为红色”
18 bash  ksh  diff 

5
滚动差异来存储高度相似的文件?
在工作中,我们每晚进行mysql数据库转储。每天,我都会想像一下近90-95%的数据是重复的,并且随着时间的推移而增加。(在这一点上,大概是99%) 这些转储的一行仅是一条mysql INSERT语句,因此唯一的区别是整行以及它们在文件中的排列顺序。如果我将它们排序,则文件之间的实际差异将很小。 我一直在寻找,而且还没有找到对转储输出进行排序的任何方法。不过,我可以通过sort命令来传递它。然后将有很长很长的相同行的块。 因此,我试图找到一种仅存储差异的方法。我可以从一个主转储开始,然后每晚与之比较。但是差异每晚都会更大。或者,我可以制作滚动差异,每个差异非常小,但是如果我每晚必须整理整个系列的主要差异,似乎计算时间会越来越长。 这可行吗?用什么工具? 编辑我不问如何做mysql备份。暂时忘记mysql。这是一条红鲱鱼。我想知道的是如何从一系列文件中生成一系列滚动差异。每天晚上,我们都会收到一个文件(恰好是mysqldump文件),与之前的文件相似,为99%。是的,我们将它们全部压缩。但是将所有这些冗余放在首位是多余的。我真正需要的是与前一天晚上的区别……与前一天晚上的区别仅……1%,依此类推。因此,我要做的是如何进行一系列比较,以便每晚只存储1%。


2
UNIX中的工具减去文本文件?
我有一个大文件,由文本字段组成,这些文本字段以大表的形式用分号分隔。已排序。我有一个由相同文本字段组成的较小文件。在某个时候,有人将这个文件与其他文件串联在一起,然后进行了排序以形成上述的大文件。我想从大文件中减去小文件的行(即对于小文件中的每一行,如果大文件中存在匹配的字符串,则删除大文件中的该行)。 该文件大致如下所示 GenericClass1; 1; 2; NA; 3; 4; GenericClass1; 5; 6; NA; 7; 8; GenericClass2; 1; 5; NA; 3; 8; GenericClass2; 2; 6; NA; 4; 1; 等等 有没有快速的经典方法可以做到这一点,还是我必须使用awk?

1
这是创建补丁的好方法吗?
我想从一个特定的gcc分支创建一个补丁,并将其与官方版本进行比较;因此,当我从稳定版本中解压缩tarball时,我可以应用补丁并获得与该特定分支中相同的内容。 这是我第一次需要创建补丁,所以这是我第一次这样做。我主要关心的是正确获取选项和解析,因为我们正在谈论的是非常重要的软件 diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch 这足够了,并且是最好的方法吗?
15 diff  patch 

3
在Emacs中比较目录
我正在尝试ediff-directories,但是不确定我是否正确使用它。 我在文档中读到,一旦向提供了两个目录ediff-directories,如果按==Emacs ,则会递归比较它们。 但是,如果按该按钮,则在运行命令的级别上==只会得到带有=符号的文件夹(这意味着两个文件夹具有相同的内容)。如果要查看哪些文件夹=在文件夹层次结构的更深层具有标志,则需要==在每个级别重新运行该命令。 我怎样才能告诉emacs递归地一直到叶子,以便我可以看到中的所有差异directory difference buffer(可通过键盘命令访问D)? 如果有人知道如何使用的教程ediff-directories(除了官方文档),我将非常感兴趣。 另外,如果我要退出会话组(在一个级别上比较文件夹),但是我打开了更深层次的会话,如果按q(退出此会话组),Emacs会抱怨: 此会话组的会话正在进行-无法退出 如何退出会话组而又不一一退出子会话?
15 emacs  diff 


3
我如何做N向差异?
如何区分多个命令的输出?vimdiff最多可以支持四个文件,但diff它本身似乎恰好支持两个文件。 使用的某些变体是否可以直接实现diff,还是我必须将所有命令的输出保存到临时文件中,选择一个并将其与其余内容进行比较? 内容: 我必须检查多个服务器上某个命令的输出,看看它们是否都同意。目前,仅报告是否发现任何差异似乎是件好事,但如果可能的话,我想说:X%的服务器彼此同意,Y%的服务器彼此同意;或服务器Z是奇数。 我有一个四向多主LDAP设置,并且我想验证ContextCSN所有四个值是否彼此一致。 所以现在我做了: #! /bin/bash for i in {1..4}.ldap do ldapsearch -x -LLL -H ldap://$i -s base -b dc=example,dc=com contextCSN > $i.csn; done set -e for i in {2..4} do diff -q 1.csn $i.csn done 并检查脚本的错误代码。有更好的工具吗? 欢迎在Ubuntu 14.04上使用的任何工具。
14 scripting  diff 

3
diff在2个文件中报告同一行不同
我有2个文件,其中包含歌曲列表。hdsongs.txt和sdsongs.txt 我编写了一个简单的脚本来列出所有歌曲并输出到文本文件,然后对它们进行比较。在大多数情况下,它工作正常,但是脚本中实际的diff命令显示的是同一行,但有所不同。实际上,这是针对多行而不是全部发生的。 这是两个文件中歌曲的示例: $ grep Apologize \*songs\* hdsongs.txt:Timbaland/Apologize.mp3 sdsongs.txt:Timbaland/Apologize.mp3 我看不到结尾的特殊字符: $ cat -A hdsongs.txt sdsongs.txt | grep Apologize Timbaland/Apologize.mp3$ Timbaland/Apologize.mp3$ 当我运行diff时,它显示每个文件中都有相同的行;但是线条不一样吗? $ diff hdsongs.txt sdsongs.txt | grep Apologize > Timbaland/Apologize.mp3 < Timbaland/Apologize.mp3 这类似于此处的线程: diff报告两个文件不同,尽管它们相同! 但这是针对文件中的行而不是整个文件,并且这种情况下的分辨率似乎不合适。 $ diff <(cat -A phonesongsonly.txt) <(cat -A passportsongsonly.txt) | grep Apologize < Timbaland/Apologize.mp3$ > Timbaland/Apologize.mp3$ …
14 diff 

12
linux diff工具:创建修改文件列表
如何使用linux命令行工具以编程方式创建已修改文件的列表?我对任何特定文件(增量,补丁)中的差异都不感兴趣。我只想列出与以前的产品版本比较的新文件或修改过的文件。这样我就可以发布新产品更新。 更新:diff -qr不会产生非常方便的输出。的输出diff -qr也需要处理。有什么更好的办法吗?

3
“补丁意外中止”是什么意思?
这是我的patch命令的输出: Hunk #11 merged at 4184,4190. Hunk #12 merged at 4444. Hunk #13 merged at 4944. Hunk #14 NOT MERGED at 5106-5116. Hunk #15 merged at 5290. Hunk #16 merged at 5448. patch unexpectedly ends in middle of line Hunk #17 merged at 5608,5611. 命令是 patch -d ~/SOME_DIR -p1 --merge …


4
将大量目录与进度报告进行比较
我只是将2,000,000个文件(3TB)从一个RAID同步到另一个RAID。 我想确保我的数据是完整的。 rsync -c 需要很长时间。 diff 没有告诉我它在做什么。 有没有一种替代方法可以使(a)更快,并且(b)在比较时可以显示进度? (我在Mac电脑上,请brew search diff给我apgdiff colordiff diffstat diffutils fmdiff libxdiff open-vcdiff podiff rfcdiff vbindiff bsdiff diffpdf diffuse dwdiff kdiff3 ndiff perceptualdiff rdiff-backup tkdiff wdiff ...其中一个可以胜任吗?)

4
我可以得到`diff -q`的反义词吗?匹配相同文件而不打印其内容
我的目录中有许多文件,我想检查它们是否唯一。为简单起见,假设我有三个文件:foo.txt,bar.txt和baz.txt。如果运行此循环,则将彼此进行检查: $ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done Files bar.txt and baz.txt differ Files bar.txt and foo.txt differ Files baz.txt and bar.txt differ Files baz.txt and foo.txt differ Files foo.txt and bar.txt differ Files foo.txt and baz.txt differ 对于我要处理的数百个文件,这将变得非常难以阅读;最好列出确实匹配的文件,然后我可以快速查看列表并确保文件仅匹配自己。从联机帮助页来看,我认为该-s选项可以完成此任务: $ …
13 bash  diff 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.