在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 統計...