grep命令1、作用: Linux系統(tǒng)中g(shù)rep命令是一種強大的文本搜索工具,它能使用多種選項及正則表達式搜索文本,并把匹配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式打印,它的使用權(quán)限是所有用戶。 2、語法: grep [option...] [patterns] [file...]
可以有零個或多個選項參數(shù),以及零個或多個文件參數(shù)。patterns參數(shù)包含一個或多個由|分隔的模式,當(dāng)通過“-e patterns”或“-f file”選項給出模式時,將忽略該參數(shù)。當(dāng)在shell命令中使用grep時,通常應(yīng)該引用模式。3、常用選項: -E :開啟擴展(Extend)的正則表達式。 -i :忽略大小寫(ignore case)。 -v :反過來(invert),只打印沒有匹配的,而匹配的反而不打印。 -n :顯示行號 -w :被匹配的文本只能是單詞,而不能是單詞中的某一部分,如文本中有l(wèi)iker,而搜尋的是like,就可以使用-w選項來避免匹配liker -c :顯示總共有多少行被匹配到了,而不是顯示被匹配到的內(nèi)容,注意如果同時使用-cv選項是顯示有多少行沒有被匹配到。 -o :只顯示被模式匹配到的字符串。 –color :將匹配到的內(nèi)容以顏色高亮顯示。 -A n:顯示匹配到的字符串所在的行及其后n行,after -B n:顯示匹配到的字符串所在的行及其前n行,before -C n:顯示匹配到的字符串所在的行及其前后各n行,context 4、基本正則表達式
- 1匹配字符:
. :任意一個字符。[abc] :表示匹配一個字符,這個字符必須是abc中的一個。 [a-zA-Z] :表示匹配一個字符,這個字符必須是a-z或A-Z這52個字母中的一個。 [^123] :匹配一個字符,這個字符是除了1、2、3以外的所有字符。 對于一些常用的字符集,系統(tǒng)做了定義: [A-Za-z] 等價于 [[:alpha:]] [0-9] 等價于 [[:digit:]] [A-Za-z0-9] 等價于 [[:alnum:]] tab,space 等空白字符 [[:space:]] [A-Z] 等價于 [[:upper:]] [a-z] 等價于 [[:lower:]] 標點符號 [[:punct:]] 5、常見使用示例
- 1 示例1
搜索日志文件中是否存在錯誤信息,假如錯誤信息的關(guān)鍵字是"error",可以使用如下命令grep error test.log
- 2 示例2
如果搜索的字符串不包含空格則可以不需要引號,如果包含空格,則需要使用雙引號或者單引號包起來。
- 3 示例3
搜索目錄下所有文件,包含子文件夾,加上-r參數(shù)即可grep -r "xxxxxx" *
- 4 示例4
搭配其他命令一起使用,比如:搭配tailf命令實時搜索相關(guān)字符串,搭配ps命令搜索相關(guān)進程是否啟動。tailf xxx.log | grep "good" ps -ef | grep "goodprocess"
- 5 示例5
搜索歷史日志文件,但是歷史日志文件被打包成gz文件了,全部解壓出來再使用grep搜索就太麻煩了,這時可以使用zgrep。zgrep -a "good" xxxx.tar.gz
- 6 示例6
搜索不固定的字符串,但是這些字符串有一定的規(guī)律,這時可以使用正則表達式。假如日志中的日期格式為1009-123030,想要搜索12點到13點的日志,則可使用如下命令grep "1009-1[2-3][[:digit:]]{4}" test.log grep -E "1009-1[2-3][[:digit:]]{4}" test.log egrep "1009-1[2-3][[:digit:]]{4}" test.log 這3種方式都可以
- 7 示例7
如果搜出來的日志比較多,全部打印出來無法閱讀,那么可以將其存到一個文件中。egrep "1009-1[2-3][[:digit:]]{4}" test.log > 1213.log
- 8 示例8
同時搜索多個關(guān)鍵字,使用|分割關(guān)鍵字,如下多個關(guān)鍵字是或的關(guān)系grep "hund|world|China" test.log grep -E "hund|world|China" test.log egrep "hund|world|China" test.log 這3種方式都可以
多個關(guān)鍵字與的關(guān)系,使用多個grep分別搜索,同一行包含所有關(guān)鍵字才會有結(jié)果。復(fù)制 grep hund test.log | grep world | grep China
?著作權(quán)歸作者所有:來自51CTO博客作者恒生LIGHT云社區(qū)的原創(chuàng)作品,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任一個提高工作效率的常用linux命令 https://blog.51cto.com/u_7932852/4272987
本文摘自 :https://blog.51cto.com/u