;?????diff命令在最簡單的情況下,比較給定的兩個(gè)文件的不同。如果使用“-”代替“文件”參數(shù),則要比較的內(nèi)容將來自標(biāo)準(zhǔn)輸入。diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進(jìn)行目錄的比較,則將會(huì)比較該目錄中具有相同文件名的文件,而不會(huì)對(duì)其子目錄文件進(jìn)行任何比較操作。下面是linuxdiff命令的具體介紹:
鐵嶺網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
diff(diff即different簡寫)命令用于比較文件的差異。
選項(xiàng):
-
-a或——text:diff預(yù)設(shè)只會(huì)逐行比較文本文件;
-b或_ignore-space-change:不檢查空格字符的不同;
-B或_ignore-blank-lines:不檢查空白行;
-c:顯示全部內(nèi)容,并標(biāo)出不同之處;
-C
-d或——minimal:使用不同的演算法,以小的單位來做比較;
-D
-e或——ed:此參數(shù)的輸出格式可用于ed的script文件;
-f或-forward-ed:輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處;
-H或_speed-large-files:比較大文件時(shí),可加快速度;
-l
-i或_ignore-case:不檢查大小寫的不同;
-l或——paginate:將結(jié)果交由pr程序來分頁;
-n或——rcs:將比較結(jié)果以RCS的格式來顯示;
-N或_new-file:在比較目錄時(shí),若文件A僅出現(xiàn)在某個(gè)目錄中,預(yù)設(shè)會(huì)顯示:Onlyin目錄,文件A若使用-N參數(shù),則diff會(huì)將文件A與一個(gè)空白的文件比較;
-p:若比較的文件為C語言的程序碼文件時(shí),顯示差異所在的函數(shù)名稱;
-P或_unidirectional-new-file:與-N類似,但只有當(dāng)?shù)诙€(gè)目錄包含了第一個(gè)目錄所沒有的文件時(shí),才會(huì)將這個(gè)文件與空白的文件做比較;
-q或_brief僅顯示有無差異,不顯示詳細(xì)的信息;
-r或——recursive:比較子目錄中的文件;
-s或_report-identical-files:若沒有發(fā)現(xiàn)任何差異,仍然顯示信息;
-S
-t或_expand-tabs:在輸出時(shí),將tab字符展開;
-T或_initial-tab:在每行前面加上tab字符以便對(duì)齊;
-u,-U
-v或——version:顯示版本信息;
-w或_ignore-all-space:忽略全部的空格字符;
-W
-x
-X
-y或_side-by-side:以并列的方式顯示文件的異同之處;
_help:顯示幫助;
_left-column:在使用-y參數(shù)時(shí),若兩個(gè)文件某一行內(nèi)容相同,則僅在左側(cè)的欄位顯示該行內(nèi)容;
_suppress-common-lines:在使用-y參數(shù)時(shí),僅顯示不同之處。
以上就是今天的分享了,希望可以幫助到大家。
本文章基于thinkpadE15品牌、centos7系統(tǒng)撰寫的。
可以用diff命令對(duì)比文檔內(nèi)容。
[語法]: diff [參數(shù)] 文件1 文件2
[說明]: 本命令比較兩個(gè)文本文件,將不同的行列出來
-b 將一串空格或TAB 轉(zhuǎn)換成一個(gè)空格或TAB
-e 生成一個(gè)編輯角本,作為ex 或ed 的輸入可將文件1 轉(zhuǎn)換成文件2
[例子]:
diff file1 file2
diff -b file1 file2
diff -e file1 file2 edscript
diff 命令的常用參數(shù)
a 將所有文件當(dāng)做文本文件來處理
b 忽略空格造成的不同
B 忽略空行造成的不同
q 只報(bào)告什么地方不同,不報(bào)告具體的不同信息
H 利用試探法加速對(duì)大文件的搜索
i 忽略大小寫的變化
l 用pr對(duì)輸出進(jìn)行分頁
r 在比較目錄時(shí)比較所有的子目錄
s 兩個(gè)文件相同時(shí)才報(bào)告
v 在標(biāo)準(zhǔn)輸出上輸出版本信息并退出
實(shí)例:比較兩個(gè)文件
代碼如下:
[root@localhost test3]# diff log2014.log log2013.log
----------------------------------------------------------------------------
3c3
《 2014-03
---
》 2013-03
8c8
《 2013-07
---
》 2013-08
11,12d10
《 2013-11
《 2013-12
----------------------------------------------------------------------------
說明:上面的“3c3”和“8c8”表示log2014.log和log20143log文件在3行和第8行內(nèi)容有所不同;“11,12d10”表示第一個(gè)文件比第二個(gè)文件多了第11和12行。
如果想對(duì)兩個(gè)有序的文件進(jìn)行比較,可以使用comm命令。
語法:comm [- 123 ] file1 file2
說明:該命令是對(duì)兩個(gè)已經(jīng)排好序的文件進(jìn)行比較。其中file1和file2是已排序的文件。comm讀取這兩個(gè)文件,然后生成三列輸出:僅在file1中出現(xiàn)的行;僅在file2中出現(xiàn)的行;在兩個(gè)文件中都存在的行。如果文件名用“- ”,則表示從標(biāo)準(zhǔn)輸入讀取。
comm -1 不顯示只出現(xiàn)在第一個(gè)文件的行。
comm -2 不顯示只出現(xiàn)在第二個(gè)文件的行。
comm -3 不顯示同時(shí)出現(xiàn)在兩個(gè)文件的行。
comm file1 file2 顯示三列,第一列代表只出現(xiàn)在file1的行,第二列代表只出現(xiàn)在file2的行,第三列代表倆個(gè)文件同時(shí)出現(xiàn)的行
comm -12 顯示兩個(gè)文件同時(shí)出現(xiàn)的行 也就是交集
comm -13 顯示只出現(xiàn)在第二個(gè)文件的行
comm -23 顯示只出現(xiàn)在第一個(gè)文件的行
例如:假設(shè)要對(duì)文件myfile1和myfile2進(jìn)行比較
$ cat myfile1
main( )
{
float a,b, i, j ,z ;
a=i=10 ; b=j=5 ;
z= i + j ;
printf(“z=%d\\\\n”,z) ;
}
$ cat myfile2
#include stdio.h
main( )
{
float i, j ,z ;
i=10 ; j=5 ;
z= i + j ;
printf(“z=%f\\\\n”,z) ;
}
$ comm - 12 myfile1 myfile2
main( )
{
z= i + j ;
}
就只顯示文件myfile1和myfile2中共有的行。
1.列出文件清單命令:ls
ls命令能夠列出當(dāng)前目錄下的所有內(nèi)容。ls 命令的執(zhí)行方式為:
# ls [-選項(xiàng)] [文件名或者目錄名]
進(jìn)入到Linux命令行中后,我們至少要知道當(dāng)前所處的位置有哪些內(nèi)容,這些信息就可以使用ls命令來獲得。
在Linux中,ls命令是最常使用的命令之一,因?yàn)樵诿钚邢乱S時(shí)查看目錄內(nèi)容。如果不加任何選項(xiàng)的話,ls命令僅列出當(dāng)前目錄下的文件和目錄名,例如,想要查看/etc目錄下的內(nèi)容,可以使用下列命令:
# ls /etc
如果想要列出當(dāng)前目錄下所有文件,則可以使用下列命令:
# ls -a
2、cat命令
功能:在標(biāo)準(zhǔn)輸出上顯示文件。
語法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 file2
3、more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在于less命令在顯示文件時(shí)允許用戶既
可以向前又可以向后翻閱文件。
5、head命令
功能:顯示指定文件的前若干行。缺省設(shè)置為顯示10行
語法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:顯示指定文件的末尾若干行。缺省設(shè)置為顯示10行
語法:tail [+ / - num ] [參數(shù)] 文件
+num 從第num行以后開始顯示。- num 從距文件尾num行處開始顯示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個(gè)指定的模式;egrep命令檢索擴(kuò)展的正則表達(dá)式(包括表達(dá)式組和可選項(xiàng));fgrep命令檢索固定字符串,它不識(shí)別正則表達(dá)式,是快速搜索命令。
語法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
fgrep [選項(xiàng)] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
Y:diff命令
●簡介
★diff命令用于比較文件的差異。
★diff以逐行的方式,比較文本文件的異同處。如果指定要比較目錄,則diff會(huì)比較目錄中相同文件名的文件,但不會(huì)比較其中子目錄。
●語法
★命令格式:diff[參數(shù)][文件1或目錄1][文件2或目錄2]
★參數(shù):
☆-行數(shù) 指定要顯示多少行的文本。此參數(shù)必須與-c或-u參數(shù)一并使用。
☆-a或--text diff預(yù)設(shè)只會(huì)逐行比較文本文件。
☆-b或--ignore-space-change 不檢查空格字符的不同。
☆-B或--ignore-blank-lines 不檢查空白行。
☆-c 顯示全部內(nèi)文,并標(biāo)出不同之處。
☆-C行數(shù)或--context行數(shù) 與執(zhí)行"-c-行數(shù)"指令相同。
☆-d或--minimal 使用不同的演算法,以較小的單位來做比較。
☆-D巨集名稱或ifdef巨集名稱 此參數(shù)的輸出格式可用于前置處理器巨集。
☆-e或--ed 此參數(shù)的輸出格式可用于ed的script文件。
☆-f或-forward-ed 輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處。
☆-H或--speed-large-files 比較大文件時(shí),可加快速度。
☆-l字符或字符串或--ignore-matching-lines字符或字符串 若兩個(gè)文件在某幾行有所不同,而這幾行同時(shí)都包含了選項(xiàng)中指定的字符或字符串,則不顯示這兩個(gè)文件的差異。
☆-i或--ignore-case 不檢查大小寫的不同。
☆-l或--paginate 將結(jié)果交由pr程序來分頁。
☆-n或--rcs 將比較結(jié)果以RCS的格式來顯示。
☆-N或--new-file 在比較目錄時(shí),若文件A僅出現(xiàn)在某個(gè)目錄中,預(yù)設(shè)會(huì)顯示:
☆Only in目錄:文件A若使用-N參數(shù),則diff會(huì)將文件A與一個(gè)空白的文件比較。
☆-p 若比較的文件為C語言的程序碼文件時(shí),顯示差異所在的函數(shù)名稱。
☆-P或--unidirectional-new-file 與-N類似,但只有當(dāng)?shù)诙€(gè)目錄包含了一個(gè)第一個(gè)目錄所沒有的文件時(shí),才會(huì)將這個(gè)文件與空白的文件做比較。
☆-q或--brief 僅顯示有無差異,不顯示詳細(xì)的信息。
☆-r或--recursive 比較子目錄中的文件。
☆-s或--report-identical-files 若沒有發(fā)現(xiàn)任何差異,仍然顯示信息。
☆-S文件或--starting-file文件 在比較目錄時(shí),從指定的文件開始比較。
☆-t或--expand-tabs 在輸出時(shí),將tab字符展開。
☆-T或--initial-tab 在每行前面加上tab字符以便對(duì)齊。
☆-u,-U列數(shù)或--unified=列數(shù) 以合并的方式來顯示文件內(nèi)容的不同。
☆-v或--version 顯示版本信息。
☆-w或--ignore-all-space 忽略全部的空格字符。
☆-W寬度或--width寬度 在使用-y參數(shù)時(shí),指定欄寬。
☆-x文件名或目錄或--exclude文件名或目錄 不比較選項(xiàng)中所指定的文件或目錄。
☆-X文件或--exclude-from文件 您可以將文件或目錄類型存成文本文件,然后在=文件中指定此文本文件。
☆-y或--side-by-side 以并列的方式顯示文件的異同之處。
☆--help 顯示幫助。
☆--left-column 在使用-y參數(shù)時(shí),若兩個(gè)文件某一行內(nèi)容相同,則僅在左側(cè)的欄位顯示該行內(nèi)容。
☆--suppress-common-lines 在使用-y參數(shù)時(shí),僅顯示不同之處。
●案例
★實(shí)例一:比較兩個(gè)文件
[root@localhost test3]# diff log2014.log log2013.log
3c3
2014-03
---
2013-03
8c8
2013-07
---
2013-08
11,12d10
2013-11
2013-12
☆上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行內(nèi)容有所不同;"11,12d10"表示第一個(gè)文件比第二個(gè)文件多了第11和12行。
★實(shí)例二:并排格式輸出
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2014-03 | 2013-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-07 | 2013-08
2013-09 2013-09
2013-10 2013-10
2013-11
2013-12
[root@localhost test3]# diff log2013.log log2014.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2013-03 | 2014-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-08 | 2013-07
2013-09 2013-09
2013-10 2013-10
2013-11
2013-12
★說明:
☆"|"表示前后2個(gè)文件內(nèi)容有不同;
☆""表示后面文件比前面文件少了1行內(nèi)容;
☆""表示后面文件比前面文件多了1行內(nèi)容;