diff命令学习参考

Shell命令
109
linux
linux 举报
06月02日 11:38

下面是一个例子,char文件内容是abc,chardiff2内容是bcd

$ diff -c char chardiff2

*** char    2019-09-16 21:40:47.000000000 +0800

--- chardiff2    2019-09-17 00:38:52.000000000 +0800

***************

*** 1,3 ****

- a

  b

  c

--- 1,3 ----

  b

  c

+ d

直接加了-c参数是为了更直观,感兴趣可以自己尝试去掉-c看看是什么效果。

*** 1,3 ****和--- 1,3 ----代表1到3行,-代表删除行,+代表增加行,!代表更改行。

diff不仅可以临时对比两个文件之间的差异,但是和下一个命令组合起来才是其真正的用处。

diff [options] file1 file2

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

3>[options]主要参数

-a:将所有文件当作文本文件来处理。

-b或–ignore-space-change  忽略空格造成的不同。

-B或–ignore-blank-lines  忽略空行造成的不同。

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

-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会产生很多信息。


倒序看帖 只看楼主
推广信息