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

僅顯示公有行

相關文章
相關標籤/搜索