Grep使用正則

基礎正則表達式

grep 工具,以前介紹過。

grep -[acinv]   '搜索內容串'   filename

-a 以文本文件方式搜索

-c 計算找到的符合行的次數

-i 忽略大小寫

-n 順便輸出行號

-v 反向選擇,即顯示不包含匹配文本的所有行

-h 查詢多文件時不顯示文件名

-l 查詢多文件時只輸出包含匹配字符的文件名

-s 不顯示不存在或無匹配文本的錯誤信息

grep命令加- E參數,這一擴展允許使用擴展模式匹配


grep:

$ ls -l | grep '^a' 通過管道過濾ls -l輸出的內容,只顯示以a開頭的行。 

$ grep 'test' d* 顯示所有以d開頭的文件中包含test的行。 

$ grep 'test' aa bb cc 顯示在aa,bb,cc文件中匹配test的行。 

$ grep '[a-z]/{5/}' aa 顯示所有包含每個字符串至少有5個連續小寫字符的字符串的行。 

$ grep 'w/(es/)t.*/1' aa 如果west被匹配,則es就被存儲到內存中,並標記爲1,然後搜索任意個字符(.*),這些字符後面緊跟着另外一個es(/1),找到就顯示該行。如果用egrep或grep -E,就不用"/"號進行轉義,直接寫成'w(es)t.*/1'就可以了。 



grep正則表達式元字符集(基本集) 

^ 錨定行的開始 如:'^grep'匹配所有以grep開頭的行。 

$ 錨定行的結束 如:'grep$'匹配所有以grep結尾的行。 

. 匹配一個非換行符的字符 如:'gr.p'匹配gr後接一個任意字符,然後是p。 

* 匹配零個或多個先前字符 如:'*grep'匹配所有一個或多個空格後緊跟grep的行。 

.*一起用代表任意字符。 

[] 匹配一個指定範圍內的字符,如'[Gg]rep'匹配Grep和grep。 

[^] 匹配一個不在指定範圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。 

/(../) 標記匹配字符,如'/(love/)',love被標記爲1。 

/< 錨定單詞的開始,

/> 錨定單詞的結束,如'grep/>'匹配包含以grep結尾的單詞的行。 

x/{m/} 重複字符x,m次,如:'o/{5/}'匹配包含5個o的行。 x/{m,/} 重複字符x,至少m次,如:'o/{5,/}'匹配至少有5個o的行。 

x/{m,n/} 重複字符x,至少m次,不多於n次,如:'o/{5,10/}'匹配5--10個o的行。 

/w 匹配文字和數字字符,也就是[A-Za-z0-9_],如:'G/w*p'匹配以G後跟零個或多個文字或數字字符,然後是p。 

/W /w的反置形式,匹配一個或多個非單詞字符,如點號句號等。 

/b 單詞鎖定符,如: '/bgrep/b'只匹配grep。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章