項目上線之后,或者在測試環(huán)境,經(jīng)常會有bug讓我們?nèi)ヅ挪楹托薷,這個時候,我們需要在linux系統(tǒng)中使用一些命令幫我我們解決問題。今天和大家談?wù)刧rep命令。
今天遇到這樣一個問題,線上的一個問題,在一個月之后發(fā)現(xiàn)的,但是log的配置文件只保留最近七天的日子,這樣,查看一個月前的單日回滾的日志文件就沒有可能。但是tomcat等應(yīng)用服務(wù)器有個統(tǒng)一放日志的地方,比如catalina.out文件,放了所有的日志,所以只能從這個文件入手查找bug的日志。
grep詳解
javascript的regexp類表示正則表達式和字符串和正則表達式定義,使用正則表達式來進行強大的模式匹配和搜索和替換文本功能的方法。,這兩個還有更多的含義,前者為正向預(yù)查,在任何開始匹配圓括號內(nèi)的正則表達式模式的位置來匹配搜索字符串,后者為負向預(yù)查,在任何開始不匹配該正則表達式模式的位置來匹配搜索字符串。此資源管理器視圖還包含高級搜索功能,如果搜索文本區(qū)分大小寫,可輸入過濾文本并指定搜索是否是正則表達式、文件名或文件內(nèi)容。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
功能:輸入文件的每一行中查找字符串。
基本用法:
grep [-acinv] [--color=auto] [-A n] [-B n] '搜尋字符串' 文件名
參數(shù)說明:
-a:將二進制文檔以文本方式處理
-c:顯示匹配次數(shù)
-i:忽略大小寫差異
-n:在行首顯示行號
-A:After的意思,顯示匹配字符串后n行的數(shù)據(jù)
-B:before的意思,顯示匹配字符串前n行的數(shù)據(jù)
-v:顯示沒有匹配行-A:After的意思,顯示匹配部分之后n行-B:before的意思,顯示匹配部分之前n行
grep可用于shell腳本,因為grep通過返回一個狀態(tài)值來說明搜索的狀態(tài),如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。
1.命令格式:
grep [option] pattern file
2.命令功能:
用于過濾/搜索的特定字符。可使用正則表達式能多種命令配合使用,使用上十分靈活。
3.命令參數(shù):
-a --text #不要忽略二進制的數(shù)據(jù)。
-A<顯示行數(shù)> --after-context=<顯示行數(shù)> #除了顯示符合范本樣式的那一列之外,并顯示該行之后的內(nèi)容。
-b --byte-offset #在顯示符合樣式的那一行之前,標(biāo)示出該行第一個字符的編號。
-B<顯示行數(shù)> --before-context=<顯示行數(shù)> #除了顯示符合樣式的那一行之外,并顯示該行之前的內(nèi)容。
-c --count #計算符合樣式的列數(shù)。
在 context 中路徑數(shù)較少時,如果不考慮顯示效果,性能上還可以接受,但是如果 context 中的路徑數(shù)很多時,在開始繪制新路徑前不使用 beginpath 的話,因為每次繪制都要將之前的路徑重新繪制一遍,這時性能會以指數(shù)下降。context 的匹配方法是 最長匹配 ,所以一個 “ ” path="" 的 context 將成為該 host 的默認 context,所有無法和其它 context 的路徑名匹配的請求都將最終和該默認 context 匹配。候選數(shù)區(qū)塊刪減法也是比較常用的方法,它的目的是盡量刪減候選數(shù),而不一定要生成某一單元格的唯一解(當(dāng)然,產(chǎn)生唯一解更好).候選數(shù)區(qū)塊刪減法是利用九宮格中的候選數(shù)和行或列上的候選數(shù)之間的交互影響而實現(xiàn)的一種刪減方法. 在某一九宮格中,當(dāng)所有可能出現(xiàn)某個數(shù)字的單元格都位于同一行時,就可以把這個數(shù)字從該行的其他單元格的候選數(shù)中刪除. 在某一九宮格中,當(dāng)所有可能出現(xiàn)某個數(shù)字的單元格都位于同一列時,就可以把這個數(shù)字從該列的其他單元格的候選數(shù)中刪除. 在某一行(列)中,當(dāng)所有可能出現(xiàn)某個數(shù)字的單元格都位于同一九宮格中時,就可以把這個數(shù)字從該九宮格的其他單元格的候選數(shù)中刪除.。