Articles of 比较

Bash:找出哪些行在两个文件之间没有改变

我有两个文件,每个文件都包含一个计数列表,其中每行是特定进程的计数,例如 文件1: 10 13 12 7 15 文件2: 13 13 15 21 15 我希望做diff的逆,也就是说,找出两个文件之间哪些行没有改变。 理想情况下,输出将是行号,以识别停滞的进程file_out: 2 5 关于潜在的重复:“逆向差异”问题实际上是寻找相同的行,而不pipe它们在文件中的位置如何(尽pipe文件必须分类)。 我要求直接比较每个文件中的同一行。

diff:只比较文件并忽略子目录

我试图比较两个目录,每个目录都有一些文件和一个子目录。 有没有办法在这两个文件夹上运行diff,但不能在子目录上运行它? 我试过使用diff -x'*/' foo bar ,还有一些带反斜杠的变体来逃避它们,但是没有骰子。 子目录的实际名称可以更改,这就是为什么我不想指定确切的名称模式。 谢谢!

比较可执行文件或目标文件

我有两个文件,应该从相同的源版本生成。 其中一个文件被剥离。 可以比较文件的原始可执行部分来确定它们是否相同? 也可以在目标文件(特别是.ko linux内核模块)上完成? 最好的祝福

如何区分两个文件夹到多个补丁文件

首先,我试着在askubuntu上询问同样的问题,但我并没有在这方面做得太多。https://askubuntu.com/questions/186114/how-to-diff-two-folders-to-multiple-patch-files/ 186121个#comment231985_186121 所以,我会复制/粘贴希望这给我一个工作的解决scheme… 我不是一个unix的人,所以我会继续问: 我有一个以下的问题 – 两个文件夹与大量的子文件夹。 我需要区分他们。 我试过这个: diff -drupN vanila_kernel_3.0.8 my_kernel_3.0.8 > kernel.patch 这导致了一个185MB文件…而不是真正的我想要的。 我希望差异的结果是很多较小的补丁,理想情况下每个更改的文件与更改的内容之一。 这意味着我有改变我使用差异的方式,我需要把它放在某种循环…所以我试着运行这个小脚本 for file in original_308/*.*; do diff -dupN "$file" "my_308/${file##*/}" > "$file".patch done 但它不起作用:/ 理想情况下,我想为每个更改都有一个.patch文件,但是对于在原始文件中更改的文件的修补程序可以做得很好(因为我可以过滤新添加的文件并将其复制) 有人可以提供一个体面的方式来做到这一点吗? 更新:我知道这些文件夹和4546新增文件之间有231个改变的文件…我只是有兴趣在生成这些231补丁。 我甚至有一个文件包含这些231文件名,以便可以在脚本中使用。 我用这个来生成更新日志 diff -qdr -x *.o -x *.cmd -x *.d original_308 my_308 | sed "s/^.* and \(.*\) differ/\1/" | sort > […]

为linux内核创build补丁文件

我正在尝试创build一个补丁文件,用于在Linux内核中完成的修改。 原始目录是/usr/src/linux.vanilla ,新内核是/ usr / src / linux-master 。 我用的命令是 h@ubuntu:/usr/src$ sudo diff -rupN linux-master/ linux.vanilla/ > original.patch 但是,我收到一个错误说明 bash: original.patch: Permission denied 任何人都可以指出我哪里错了。 我使用Ubuntu和Linux内核版本3.15.0。 谢谢。

比较两个网站,看看他们是否“平等”?

我们正在迁移Web服务器,如果有一种自动的方式来检查一些基本的网站结构,看看新服务器上的渲染页面是否与旧服务器相同,那就太好了。 我只是想知道有没有人知道有什么可以协助完成这项任务?

使用sed linux在特定的string中输出一个数字

我有如下的input。 Curveplot Time Maxima of Curve Part no. 13 #pts=2 * Minval= 0.000000e+000 at time= 0.000000 * Maxval= 2.237295e+000 at time= 0.001000 0.000000e+000 0.000000e+000 9.999999e-004 2.237295e+000 endcurve 我想从这个文件中获取最大值,这是Maxval之后的值 * Maxval= 2.237295e+000 有人可以build议如何使用Linux的sed? 我的输出只会是数字2.237295e + 000。

find几个文件共同的行

我试图确定哪个头声明了一个特定的function。 我用grep来查找函数使用的实例; 现在,我想要find哪个头文件包含在所有的文件中。 我知道的comm工具 ; 但是,它只能比较两个sorting的文件。 有没有一个Unix工具可以find任意数量的未分类文件之间的共同线,或者我必须写我自己的?

AWK比较两个独立文件中的两列

我想比较两个文件,并做这样的事情:如果第一个文件中的第五列等于第二个文件中的第五列,我想从第一个文件打印整行。 那可能吗? 我search的问题,但无法find解决scheme:( 这些文件由制表符分隔,我尝试了这样的事情: zcat file1.txt.gz file2.txt.gz | awk -F'\t' 'NR==FNR{a[$5];next}$5 in a {print $0}' 有没有人试图做类似的事情? 🙂 预先感谢您的帮助!

运行差异,让它停下来的差异

我有一个脚本运行,检查多个目录,并将它们与其他地方的相同目录的扩展tarball进行比较。 我正在使用diff -r -q ,我想要的是当diff在recursion运行中发现任何差异时,它将停止运行,而不是在同一运行中经历更多的目录。 所有帮助赞赏! 谢谢 @bazzargh我做了像你所build议的或像这样的尝试。 for file in $(find $dir1 -type f); do if [[ $(diff -q $file ${file/#$dir1/$dir2}) ]]; then echo differs: $file > /tmp/$runid.tmp 2>&1; break; else echo same: $file > /dev/null; fi; done 但是这只适用于两个目录中存在的文件。 如果有一个文件丢失,我不会得到有关的信息。 此外,我正在使用的目录有超过300.000个文件,所以它似乎是一个开销,做一个find每个文件,然后diff 。 我希望像这样的工作,用和elif语句,检查$runid.tmp包含数据,如果它打破。 我在第一个if语句之后添加了2> ,所以stderr被发送到$runid.tmp文件。 for file in $(find $dir1 -type f); do if […]