linux 文件的比较

linux下比较两个文本文件的不一样——diff命令html


1>Diff命令的功能
Linux中Diff命令的功能为逐行比较两个文本文件,列出其不一样之处。它对给出的文件进行系统的检查,并显示出两个文件中全部不一样的行,不要求事先对文件进行排序。linux

2>语法
diff [options] file1 file2ide

该命令告诉用户,为了使两个文件file1和file2一致,须要修改它们的哪些行。若是用”-”表示file1或file2,则表示标准输入。若是file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。工具

3>[options]主要参数spa

-a:将全部文件看成文本文件来处理。.net

-b或–ignore-space-change  忽略空格形成的不一样。命令行

-B或–ignore-blank-lines  忽略空行形成的不一样。htm

-c:使用纲要输出格式。blog

-H:利用试探法加速对大文件的搜索。排序

-I:忽略大小写的变化。

-n –rcs:输出RCS格式。

-N或–new-file  在比较目录时,若文件A仅出如今某个目录中,会显示:Only in目录;文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。

-r或–recursive  比较子目录中的文件。

-u,-U<列数>或–unified=<列数>  以合并的方式来显示文件内容的不一样。

4>使用方法的实例说明

例如: diff /usr/xu mine

把目录/usr/xu 中名为mine的文件与当前目录中的mine文件进行比较。

一般输出由下述形式的行组成:

n1 a n3,n4

n1,n2 d n3

n1,n2 c n3,n4 这些行相似ed命令把filel转换成file2。字母(a、d和c)以前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操做。

在上述形式的每一行的后面跟随受到影响的若干行,以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。

diff能区别块和字符设备文件以及FIFO(管道文件),不会把它们与普通文件进行比较。

若是file1和file2都是目录,则diff会产生不少信息。

5>diff最经常使用的功能

diff有不少功能平时咱们不经常使用到,最经常使用的功能莫过于生成patch文件了:

diff -urN old/ new/ > mysoft.patch
参数 -u 表示使用 unified 格式,-r 表示比较目录,-N 表示将不存在的文件看成空文件处理,这样新添加的文件也会出如今patch文件中。

而后在须要应用patch的地方使用下述命令便可:

patch -p0 < mysoft.patch

diff的 -y 命令(长格式为 –side-by-side)能够将屏幕分红左右两部分,来比较两个文件之间的差别。许多图形化的比较工具都有这个功能,但若是只能使用命令行,这个参数就至关有用了。若是要改变左右各部分的宽度,能够经过 -W (–width)参数来指定。
–ignore-blank-lines 参数能够不检查空白行。这样DOS格式和Unix格式的文件互相比较时,就不至于由于换行符不一致而出现大量的差别。
本文来源于时光漂流瓶 http://www.9usb.net , 原文地址: http://www.9usb.net/200903/linux-diff.html

 

linux命令 common 文件比较

比较已经排序的文件

comm [optionsfile1 file2

comm将逐行比较已经排序的两个文件。显示结果包括3列:

第1列为只在file1中找到的行;第2列为只在file2中找到的行;第3列为两个文件的公用行。

参数

参数file1file2comm要比较的文件的路径名。用连字符(-)来替代file1或者file2时,comm将从标准输入读取输入信息

选项

-1              不显示第1列(即不显示只在file1中找到的行)

-2              不显示第2列(即不显示只在file2中找到的行)

-3              不显示第3列(即不显示在两个文件中都找到的行)

注意

若是文件没有排序,comm就不能正常的工做

第2列的没一行前面有一个制表符,第3列中的每一行前面有两个制表符

示例

原文件

$ cat a
bbbbb
ccccc
ddddd
eeeee
fffff
$ cat b
aaaaa
ddddd
eeeee
ggggg
hhhhh

 

comm

$ comm a b
    aaaaa
bbbbb
ccccc
        ddddd
        eeeee
fffff
    ggggg
    hhhhh
$

 

比较排序过的a和b文件

comm -12

$ comm -12 a b 
ddddd
eeeee

仅显示公有行

相关文章
相关标签/搜索