首頁  >  文章  >  運維  >  linux怎麼比較檔案不同

linux怎麼比較檔案不同

青灯夜游
青灯夜游原創
2022-03-25 16:21:0821548瀏覽

linux比較文件不同的方法:1、使用comm指令,可比較已經排序的文件,語法「comm [選項] 檔案名稱1 檔案名稱2」;2、使用diff指令,會以逐行的方式比較文字檔的異同處,語法「diff [選項] 檔名1 檔名2」。

linux怎麼比較檔案不同

本教學操作環境:linux5.9.8系統、Dell G3電腦。

linux 比較檔案不同

Linux檔案比較指令用來比較兩個檔案內容的差異。主要有comm指令和diff指令。如果想對兩個有序的檔案進行比較,可以使用comm指令。如果要逐行比較兩個文字文件,列出其差異可以使用diff指令。

使用comm指令比較:

比較已經排序的檔案

comm [选项] 文件名1 文件名2

comm將逐行比較已經排序的兩個檔案。顯示結果包括3列:

第1列為只在file1中找到的行;第2列為只在file2中找到的行;第3列為兩個檔案的公用行。

參數

參數file1和file2為comm要比較的檔案的路徑名。以連字號(-)取代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 a b
    aaaaa
bbbbb
ccccc
        ddddd
        eeeee
fffff
    ggggg
    hhhhh
$

比較已排序的a和b檔

$ comm -12 a b 
ddddd
eeeee

只顯示公有行

#使用diff指令比較:

diff(difference)指令常用來比較兩個檔案中的內容。 diff 指令在最簡單的情況下,比較兩個檔案的不同。如果使用“-”代替“檔案”參數,則要比較的內容將來自標準輸入。

diff 指令是以逐行的方式比較文字檔的異同處。如果該指令指定進行目錄的比較,則會比較該目錄中具有相同文件名稱的文件,而不會對其子目錄文件進行任何比較操作。

比較檔案的格式

diff [选项] 文件名1 文件名2

範例:

比較兩個檔案的不同。

建立兩個樣本文件,分別命名為text 和text1,並分別輸入以下內容:

//test
11
22
33
44
55
66
77
//test1
11
22
aa
33
44
55
bb
66

在終端頁面中輸入命令如下:

[root@bogon ~]# diff test test1
3c3
<
---
> aa
7c7
<
---
> bb
9,10d8
< 77
<

輸出資訊的意義分別為:

  • 「3c3」:表示第一個檔案的第3 行需要修改才能與第二個檔案的第3行相符;

  • “---”:表示分隔線;

  • “>aa”:> 表示第二個文件,第一個文件中需要新增的內容為aa,該內容存放在第二個文件中;

  • “>bb”:> 表示第二個文件,第一個文件中需要添加的內容為bb,該內容存放在第二個文件中;

  • “9,10d8”:表示刪除第一個文件中的第9 和第10 行才能和第二個文件中的第8 行相符;

  • 「<77」:表示第一個檔案中待刪除的內容為77。

相關推薦:《Linux影片教學

以上是linux怎麼比較檔案不同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn