diff輸出格式解析


1 命令格式

$diff <變動之前的文件> <變動之后的文件>

2 diff文件的三種格式

normal diff

context diff

unified diff

3 示例

變動之前的文件:

b

bc

b

b

b

每行一個b,共5行。

變動之后的文件:

b

bcd

b

b

b

共5行,第二行一個d,其它行都是b。

 

4 正常格式的diff

這個diff輸出的只有difference本身,不包括difference所在的代碼本身。

diff f1.txt f2.txt

輸出如下:

2c2

< bc

------

> bcd

第一行說明變動的位置:前面的2是前面文件中的位置,后面一個2是后面文件中的位置,表示行號。

c表示change,即內容改變,如果是a的話,表示該行是新增加的,如果是d的話,表示該行被刪除了。

小於號“<”表示刪除該行,大於號">"表示增加該行。小於號和大於號后面的內容是該行的內容。

5 context diff

diff -c f1.txt f2.txt

輸出如下:

*** f1.txt    2016-12-25 23:53:02.619930781 -0500

--- f2.txt      2016-12-25 23:52:54.131930652 -0500

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

*** 1,5 ***

b

!bc

b

b

b

---1,5---

b

!bcd

b

b

b

前面兩行是兩個文件的基本信息,即文件名和時間,后面是時區。並且,*表示是舊的文件,-表示的是新的文件。

***1,5***表示1到5行的所有內容。對於---1,5---同樣。

!表示本行的內容有改變。同樣,a表示增加一行,d表示減少一行。

可見,對於context格式的輸出而言,f1和f2文件的上下文是分別顯示的,

因此有很多重復的內容,因此有了unified格式,也就是說,f1和f2公用同

一個上下文。

6 unified diff

$ diff -u f1.txt f2.txt

輸出如下:

--- f1.txt        2016-12-25 23:53:02.619930781 -0500

+++ f2.txt      2016-12-25 23:52:54.131930652 -0500

@@ -1,5 +1,5 @@

b

-bc

+bcd

b

b

b

-表示f1.txt文件,+表示f2.txt文件。

1,5表示第1行到第5行。

1,5表示第1行到第5行。

-表示原文件的行,+表示新文件的行。

所以,只看-的話就是原文件,只看+的話,就是新文件了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM