天天看點

grep 正規表達式

 1.作用

Linux系統中grep指令是一種強大的文本搜尋工具,它能使用正規表達式搜尋文本,并把匹 配的行列印出來.grep全稱是Global Regular Expression Print,表示全局正規表達式版本,它的使用權限是所有使用者

正規表達式主要參數: 

^        行首定位符 

$        行尾定位符 

?        比對任意單個字元 

*        比對0或多個前一字元 

[]       比對一組字元中的任意一個(單個字元) 

[^]      比對不在指定字元組内的字元 

\<       詞首定位符 

\>       詞尾定位符 

\(..\)   标記比對的字元 

\{ \}    重複出現的次數.  \{m\} \{m,\} {\m,n\} 

[[:alpha:]] 比對字母    即[a-zA-Z] 

[[:upper:]] 比對大寫字母  即[A-Z] 

[[:lower:]] 比對小寫字母  即[a-z] 

[[:digit:]] 比對數字    即[0-9] 

[[:alnum:]] 比對數字與字母 即[0-9a-zA-Z] 

[[:space:]] 比對空格或tab鍵    

[[:graph:]] 非空格 

2.格式

grep [options] 

3.主要參數

[options]主要參數: 

-NUM    :同時顯示比對行的上下NUM行 

-c   :隻輸出比對行的計數 

-i   :不區分大小寫 

-h   :查詢多檔案時不顯示檔案名 

-l   :查詢多檔案時隻輸出包含比對字元的檔案名 

-n   :顯示比對行及行号 

-s   :不顯示不存在或無比對文本的錯誤資訊 

-v   :反檢索,顯示不包含比對文本的所有行 

-r   :遞歸查詢 

-E   :擴充(同egrep) 

--color :高亮顯示比對到的關鍵字 

[root@rhel5 data]# grep -2 xyz keyword               #顯示包含xyz的行并同時顯示其上下兩行 

[root@rhel5 data]# grep xyz keyword*                    #顯示所有以keyword開頭的檔案中包含xyz的行 

[root@rhel5 data]# grep xyz keyword1 keyword2 keyword3  #顯示檔案keyword1 keyword2 keyword3中包含xyz的行 

[root@rhel5 data]# grep -c xyz keyword               #顯示keyword檔案中包含xyz的行的個數 

[root@rhel5 data]# grep -h xyz keyword*              #顯示所有以keyword開頭的檔案中包含xyz的行且不顯示檔案名 

[root@rhel5 data]# grep -l xyz keyword*              #顯示所有以keyword開頭的檔案中包含xyz的檔案名 

[root@rhel5 data]# grep -v a keyword                    #顯示所有不包含a的行 

[root@rhel5 data]# grep -v "a\|b" keyword               #顯示所有不包含a和b的行 

[root@rhel5 data]# grep -vE "a|b" keyword               #同上 

[root@rhel5 data]# grep [0-9] keyword                #顯示包含數字的行 

[root@rhel5 data]# grep '[a-z]\{4\}' keyword            #顯示所有包含每個字元串至少有4個連續小寫字母的字元串的行 

[root@rhel5 data]# grep keyword /data/*              #在/data/目錄下搜尋包含字元串keyword的檔案(顯示檔案的路徑與包含keyword的行) 

[root@rhel5 data]# grep -r title /boot/*                #在/boot/目錄及子目錄下搜尋包含字元串title的檔案 

[root@rhel5 data]# grep '\<xy' keyword               #顯示包含以xy開頭的字元串的行(比對xyz,而不比對zxy) 

[root@rhel5 data]# grep [[:alnum:]] keyword             #顯示包含字母和數字的字元串的行 

[root@rhel5 data]# grep [[:upper:]] keyword             #顯示包含大寫字母的字元串的行 

      本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1042705,如需轉載請自行聯系原作者

繼續閱讀