本指南將向您展示如何使用Linux比較兩個文件並將其差異輸出到屏幕或文件。
您不需要安裝任何特殊軟件來比較使用Linux的文件,但您需要知道如何打開終端窗口 。
正如鍊接指南所示,使用Linux打開終端窗口的方法有很多。 最簡單的是同時按下CTRL,ALT和T鍵。
創建要比較的文件
為了遵循本指南,請創建一個名為“file1”的文件並輸入以下文本:
10個綠色的瓶子站在牆上
10個綠色的瓶子站在牆上
如果一個綠色瓶子意外掉落
將有9個綠色的瓶子站在牆上
您可以按照以下說明創建文件:
- 輸入以下命令打開文件:nano file1
- 將文本輸入到nano編輯器中
- 按下CTRL和O保存文件
- 按下CTRL和X以退出文件
現在創建另一個名為“file2”的文件並輸入以下文本:
10個綠色的瓶子站在牆上
如果1個綠色瓶子意外掉落
會有9個綠色的瓶子站在牆上
您可以按照以下說明創建文件:
- 輸入以下命令打開文件:nano file2
- 將文本輸入到nano編輯器中
- 按下CTRL和O保存文件
- 按下CTRL和X以退出文件
如何使用Linux比較兩個文件
在Linux中用於顯示2個文件之間差異的命令稱為diff命令。
diff命令的最簡單形式如下所示:
diff file1 file2
如果文件相同,那麼在使用此命令時將不會有輸出,但是,由於存在差異,您將看到類似於以下內容的輸出:
2,4c2,3
<10個綠色瓶子站在牆上
<如果一個綠色瓶子意外掉落
<將有9個綠色的瓶子站在牆上
...
>如果1個綠色瓶子意外掉落
>有9個綠色的瓶子站在牆上
最初,輸出可能看起來很混亂,但一旦你理解了這個術語,這是相當合理的。
用你自己的眼睛可以看到兩個文件之間的差異如下:
- 第二個文件只有三行,而第一個文件有四個。
- 第二個文件在第三行說“1個綠瓶”,而第一個文件說“一個綠瓶”
- 第二個文件在最後一行說“會”,而不是“會有”
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命令 。 這比較文件逐字節。