天天看點

linux中檔案比較comm/diff

比較兩個檔案内容的不同,主要有comm和diff兩個指令。

  1. comm

    主要用法:comm file1.txt file2.txt

在comm比較之前需要對兩個檔案進行sort,可以輸出在僅第一個檔案裡出現的、僅在第二個檔案裡出現的和兩個檔案共有的内容。

comm -1 file1.txt file2.txt # 不顯示第一個檔案特有的内容,顯示第二個檔案特有的内容和共有的内容
comm -2 file1.txt file2.txt  # 不顯示第二個檔案特有内容
comm -3 file1.txt file2.txt # 不顯示共有
comm -12 file1.txt file2.txt # 第一個和第二個共有
comm  -23 file1.txt file2.txt # 第一個特有
comm -13 file1.txt file2.txt  # 第二個特有           

複制

也可以專門比較某兩列或某幾列:

comm -12 <(sort file1.txt | cut -f1) <(sort file1.txt | cut -f2.txt) # 這個隻能在前台運作           

複制

  1. diff

    diff可以直接輸出比較結果,對第一個檔案提出修改建議使得第一個檔案與第二個檔案一緻。

    建立兩個檔案:cat file1.txt

    one

    two

    three

    第二個檔案: file2.txt

    one

    two

diff file1.txt file2.txt           

複制

輸出:

3d2

< three

即第一個檔案的第三行three需要被删除。

檔案夾内容比較:

diff -ruNa dir1/ dir2/           

複制