如何使用Linux比較兩個文本文件

本指南將向您展示如何使用Linux比較兩個文件並將其差異輸出到屏幕或文件。

您不需要安裝任何特殊軟件來比較使用Linux的文件,但您需要知道如何打開終端窗口

正如鍊接指南所示,使用Linux打開終端窗口的方法有很多。 最簡單的是同時按下CTRL,ALT和T鍵。

創建要比較的文件

為了遵循本指南,請創建一個名為“file1”的文件並輸入以下文本:

10個綠色的瓶子站在牆上

10個綠色的瓶子站在牆上

如果一個綠色瓶子意外掉落

將有9個綠色的瓶子站在牆上

您可以按照以下說明創建文件:

  1. 輸入以下命令打開文件:nano file1
  2. 將文本輸入到nano編輯器中
  3. 按下CTRL和O保存文件
  4. 按下CTRL和X以退出文件

現在創建另一個名為“file2”的文件並輸入以下文本:

10個綠色的瓶子站在牆上

如果1個綠色瓶子意外掉落

會有9個綠色的瓶子站在牆上

您可以按照以下說明創建文件:

  1. 輸入以下命令打開文件:nano file2
  2. 將文本輸入到nano編輯器中
  3. 按下CTRL和O保存文件
  4. 按下CTRL和X以退出文件

如何使用Linux比較兩個文件

在Linux中用於顯示2個文件之間差異的命令稱為diff命令。

diff命令的最簡單形式如下所示:

diff file1 file2

如果文件相同,那麼在使用此命令時將不會有輸出,但是,由於存在差異,您將看到類似於以下內容的輸出:

2,4c2,3

<10個綠色瓶子站在牆上

<如果一個綠色瓶子意外掉落

<將有9個綠色的瓶子站在牆上

...

>如果1個綠色瓶子意外掉落

>有9個綠色的瓶子站在牆上

最初,輸出可能看起來很混亂,但一旦你理解了這個術語,這是相當合理的。

用你自己的眼睛可以看到兩個文件之間的差異如下:

diff命令的輸出顯示在第一個文件的第2行和第4行之間以及第二個文件的第2行和第3行之間存在差異。

然後它會列出第一個文件中從2到4的行,然後是第二個文件中的2個不同的行。

如何顯示文件是否不同

如果您只想知道文件是否有所不同,並且您對哪些行不同感興趣,則可以運行以下命令:

diff -q file1 file2

如果文件不同,將顯示以下內容:

文件file1和file2不同

如果文件相同,則不顯示任何內容。

如果文件相同,如何顯示消息

當你運行一個命令時,你想知道它的工作是否正常,所以當你運行diff命令時你想要顯示一條消息,而不管這些文件是相同的還是不同的

為了使用diff命令來實現這個要求,你可以使用下面的命令:

diff -s file1 file2

現在,如果文件相同,您將收到以下消息:

文件file1和file2是相同的

如何產生差異並排

如果存在很多差異,那麼它可能很快就會混淆兩個文件之間的實際差異。

您可以更改diff命令的輸出,以便將結果並排顯示。 為了做到這一點,運行以下命令:

diff -y file1 file2

該文件的輸出使用| 符號顯示兩行之間的差異,a <顯示已被刪除的行,a>顯示已添加的行。

有趣的是,如果您使用我們的演示文件運行該命令,則所有行都將顯示為不同,除了文件2的最後一行,它將顯示為已被刪除。

限制列寬

當並排比較兩個文件時,如果文件中有很多文本列,可能很難閱讀。

要限制許多列,請使用以下命令:

diff --width = 5文件file2

如何在比較文件時忽略大小寫差異

如果您想比較兩個文件,但不關心這兩個文件的大小寫是否相同,則可以使用以下命令:

diff -i file1 file2

如何忽略行尾的尾部空白

如果在比較文件時注意到負載的差異,並且差異是由行尾的空白引起的,則可以通過運行以下命令來忽略這些文件,以顯示為更改:

diff -Z file1 file2

如何忽略兩個文件之間的所有空白區別

如果您只對文件中的文本感興趣,並且不關心一個文件中是否有更多空格,則可以使用以下命令:

diff -w file1 file2

如何在比較兩個文件時忽略空行

如果您不關心一個文件中可能包含多餘的空行,則可以使用以下命令比較這些文件:

diff -B file1 file2

概要

通過閱讀diff命令的手冊,您可以找到更多信息。

男人差異

diff命令可以以最簡單的形式使用,只顯示2個文件之間的差異,但您也可以使用它創建diff文件,作為修補策略的一部分,如本指南的Linux修補程序命令所示

您可以用來比較文件的另一個命令是本指南所示的cmp命令 。 這比較文件逐字節。