Linux常用文本比对命令——diff
生活随笔
收集整理的這篇文章主要介紹了
Linux常用文本比对命令——diff
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、前言
在windows環境下我們通常會選擇使用功能強大顯示友好的Beyond Compare工具來進行文件的比對。其實在Linux系統中就自帶了同樣的強大比對命令,可以讓我們在Linux系統下直接使用。diff命令用以比對兩個文件的不同,功能強大使用方便。diff命令是逐行進行比對,如果命令使用在目錄下,則可以比對兩個目錄中具有同名的文件。
二、語法以及參數
diff (-參數) (文件1/目錄1) (文件2/目錄2) -<行數>:指定要顯示多少行的文本。此參數必須與-c或-u參數一并使用; -a或——text:diff預設只會逐行比較文本文件; -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 differ2、比對兩個目錄下所有文件是否相同
[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常用文本比对命令——diff的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电大本科计算机上机考试题,电大计算机上机
- 下一篇: Python 合并多个Excel (表头