開發者學堂課程【Linux 文本管理入門:查找工具grep】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/790查找工具grep
内容簡介:
一:工具簡介
二:工具使用
三:常用場景
◆工具簡介
Gep全稱是Global Regular Expression Print.,直譯過來是全局正規表達式列印,顧名思義,此工具是通過使用正規表達式來比對檔案中的内容井将比對到的内容列印出來,GPp工具有一系列變體,如grep ,agrep, egrep等等.差別在于是否使用了正規表達式,和使用了正規表達式集。
◆正規表達式
正規表達式實際上是一種模式,使用這種模式可以比對對應的字元率集,正規表達式可以看做是一個有窮自動機,在Linux系統中的很多工具都使用到了正規表達式,比如之前讨論過的vm和我們之後要讨論的sed和awk。
◆文法
如下圖所示、grep的指令行參數非常之多,在此,我們主要介紹如下使用方式:
grep [-e expression][filename]
-e指定正規表達式
-i不區分大小寫
-n顯示行号
簡單的正規表達式
◆“[]”比對指定字元集
将比對text1,text2,tex3
Is I grep -e 'text[ 123]’
◆字元串精确比對
精确比對"LNE”:
grep -e LINE. viminfo
◆“[^]”不比對指定字元集
将不比對text,text2,tex3,輸出,tex4,text5
Is I grep -e ‘text’[ ^123]’
◆“*”重複比對
将比對t,to,too,(*表示>=30個)
Grep -e ‘to+’ text1
将比對to,too(+表示>0個)
Grep -e ‘to+’ text1
◆".”比對任意單個字元
将會輸出檔案全文:
grep-e’.’.viminfo
◆“^”頭部匹記
指明正規表達式心須是頭部比對比對所有開頭的字元串
grep -e ' ^text’text1
◆“$”尾部比對
指明正規表達式必須是尾部比對比對所有text結尾的字元串
grep -e 'text$’text1
◆轉義字元
經過前述的讨論可知,正規表達式中,使用了很多字元,如“.””,””^””$”等等還有很多為例出來的字元。假如要比對的字元串中有這些字元:轉義字元可以解決這個問題,轉義字元是一個反斜杠,下面的例子可以比對以“¥test”結尾的字元串。
Grep -e’\$test$$’test1
l C命名規範:
1)變量名的開頭必須是字母或下劃線,不能是數字
2)變量名中的字母是區分大小寫的。比如a和A是不同的變量名,num和Num也是不同的變量名。
3)變量名絕對不可以是C語言關鍵字,這一點一定要記住!
4)變量名是字母、數字、下劃線的組合。
c變量示例:[a-zA-Z_][a-zA-Z_0-9]*
l 在檔案中查找郵箱:
假設有這樣一個場景,當資料量很大時,想知道該檔案中是否存在某個人的郵箱,但僅僅知道郵箱以.com結尾,并且郵箱中隻含有字母和數字,要怎樣才能減輕工作量:
可以先通過grep比對出所有的以.com結尾的郵箱。
Grep’[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.com>'log.txt