比較兩個檔案内容的不同,主要有comm和diff兩個指令。
-
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) # 這個隻能在前台運作
複制
-
diff
diff可以直接輸出比較結果,對第一個檔案提出修改建議使得第一個檔案與第二個檔案一緻。
建立兩個檔案:cat file1.txt
one
two
three
第二個檔案: file2.txt
one
two
diff file1.txt file2.txt
複制
輸出:
3d2
< three
即第一個檔案的第三行three需要被删除。
檔案夾内容比較:
diff -ruNa dir1/ dir2/
複制