Linux常用文字比對命令 diff

2021-08-10 15:24:47 字數 3212 閱讀 5998

在windows環境下我們通常會選擇使用功能強大顯示友好的beyond compare工具來進行檔案的比對。其實在linux系統中就自帶了同樣的強大比對命令,可以讓我們在linux系統下直接使用。diff命令用以比對兩個檔案的不同,功能強大使用方便。diff命令是逐行進行比對,如果命令使用在目錄下,則可以比對兩個目錄中具有同名的檔案。

diff

(-引數)

(檔案1/目錄1)

(檔案2/目錄2)

-《行數》:指定要顯示多少行的文字。此引數必須與-c或-u引數一併使用; 

-b或--ignore-space

-change:不檢查空格字元的不同;

-b或--ignore-blank

-lines:不檢查空白行;

-c:顯示全部內容,並標出不同之處;

-c《行數》或--context《行數》:與執行「-c

-《行數》」指令相同;

-d或——minimal:使用不同的演演算法,以小的單位來做比較;

-d《巨集名稱》或ifdef《巨集名稱》:此引數的輸出格式可用於前置處理器巨集;

-e或——ed:此引數的輸出格式可用於ed的script檔案;

-f或-forward

-ed:輸出的格式類似ed的script檔案,但按照原來檔案的順序來顯示不同處;

-h或--speed-large

-files:比較大檔案時,可加快速度;

-l《字元或字串》或--ignore-matching

-lines

《字元或字串》:若兩個檔案在某幾行有所不同,而之際航同時都包含了選項中指定的字元或字串,則不顯示這兩個檔案的差異;

-i或--ignore-case:不檢查大小寫的不同;

-l或——paginate:將結果交由pr程式來分頁;

-n或——rcs:將比較結果以rcs的格式來顯示;

-n或--

new-file:在比較目錄時,若檔案a僅出現在某個目錄中,缺省會顯示:only in目錄,檔案a 若使用-n引數,則diff會將檔案a 與乙個空白的檔案比較;

-p:若比較的檔案為c語言的程式碼檔案時,顯示差異所在的函式名稱;

-p或--unidirectional-new

-file:與-n類似,但只有當第二個目錄包含了第乙個目錄所沒有的檔案時,才會將這個檔案與空白的檔案做比較;

-q或--brief:僅顯示有無差異,不顯示詳細的資訊; -r或——recursive:比較子目錄中的檔案;

-s或--report-identical

-files:若沒有發現任何差異,仍然顯示資訊;

-s《檔案》或--starting-file

《檔案》:在比較目錄時,從指定的檔案開始比較;

-t或--expand-tabs:在輸出時,將tab字元展開;

-t或--initial-tab:在每行前面加上tab字元以便對齊;

-u,-u

《列數》或--unified=《列數》:以合併的方式來顯示檔案內容的不同;

-v或——version:顯示版本資訊; -w或--ignore-all

-space:忽略全部的空格字元;

-w《寬度》或--width《寬度》:在使用-y引數時,指定欄寬;

-x《檔名或目錄》或--exclude《檔名或目錄》:不比較選項中所指定的檔案或目錄;

-x《檔案》或--exclude-from

《檔案》;您可以將檔案或目錄型別存成文字檔案,然後在=《檔案》中指定此文字檔案;

-y或--side-by

-side:以並列的方式顯示檔案的異同之處;

--help:顯示幫助;

--left-column:在使用-y引數時,若兩個檔案某一行內容相同,則僅在左側的字段顯示該行內容;

--suppress-common

-lines:在使用-y引數時,僅顯示不同之處。

1、僅比對兩個檔案是否相同
[roy@localhost

test]$ diff -q 1.txt 2.txt

files

1.txt and

2.txt differ

2、比對兩個目錄下所有檔案是否相同
[roy@localhost

documents]$ diff -rqn ./test ./test1

files ./test/1.txt and ./test1/1.txt differ

files ./test/2.txt and ./test1/2.txt differ

如果是很大的目錄,不同檔案非常多,顯示檢視不方便又或者得到記錄檔案的話,使用重定向到日誌中。

[roy@localhost

documents]$ diff -rqn ./test ./test1 > filelist.log

之後檢視filelist.log檔案就行了

3、比對兩個檔案並顯示異常位置

[roy@localhost test]$ diff -y 1.txt 2.txt 

a a

b b

c c

d d

e e

f f

g g

h h

j |h

k |h

l |h

m |h

n |h

「|」表示前後2個檔案內容有不同

「<」表示後面檔案比前面檔案少了1行內容

「>」表示後面檔案比前面檔案多了1行內容

Linux常用文字操作命令 2019 05 19

sed工具 sed工具最常用來批量編輯文件,例如文字的替換 刪除和新增,檢視文件是最基本的功能。檢視passwd文件的第十行。root controller sed n 10p passwd operator x 11 0 operator root sbin nologin 檢視passwd文件的...

Linux下常用文字處理命令

linux下面有很多經典的非常有用的命令,其中處理文字的命令就有很多。這些小工具經過了幾十年時間的洗禮,現在已經變成了經典,已經變成了linux下面的標準,其實它們一直是遵循著linux的標準。下面就讓我們一起看看這些經典的linux文字處理命令。拓撲排序,讀取以空格分隔的有序對,並且依靠輸入模式進...

常用linux 文字分析命令摘要一

有時我們需要對日誌等資訊進行統計,如某些資料的的平均值,方差,變異係數等。less a.txt awk end sort rn k 1 t awk f else end 另外一種更加快速簡單的統計方法。less a.txt awk end 檢視所有jar檔案是否包含某個類。ls jar awk 統計...