Linux命令: grep命令


基本用法                                                                                                 

grep  'str'  filename 在filename里查找'str'字符串

 

 

常用參數                                                                                                  

①grep  -c 'str'  filename 在filename里查找有多少行包含'str'字符串

②grep  -i 'str'  filename 在filename里查找'str'字符串,忽略大小寫

③"grep -l" 打印出匹配到'字符串'內容的文件清單。

grep -n 'str' filename 在匹配的行前面打印行號(左邊綠色)

 ⑤grep -v 'str' filename (只顯示不匹配的行,v代表reverse)

 

⑥"grep -w" 全字匹配的搜索。(w為word regexp的意思)

grep -A 4 輸出匹配到'字符串'內容的行和后4行。

grep -B 4 輸出匹配到'字符串'內容的行和前4行。
⑨grep -C 4 輸出匹配到'字符串'內容的行和前后4行。

 

正則表達式                                                                                                

①^  錨定行的開始 如:'^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開頭的單詞的行。    

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

x\{m\}  #重復字符x,m次,如:'0\{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。  

POSIX字符:

為了在不同國家的字符編碼中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符類,如[:alnum:]是[A-Za-z0-9]的另一個寫法。要把它們放到[]號內才能成為正則表達式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符類。

[:alnum:]    #文字數字字符   

[:alpha:]    #文字字符   

[:digit:]    #數字字符   

[:graph:]    #非空字符(非空格、控制字符)   

[:lower:]    #小寫字符   

[:cntrl:]    #控制字符   

[:print:]    #非空字符(包括空格)   

[:punct:]    #標點符號   

[:space:]    #所有空白字符(新行,空格,制表符)   

[:upper:]    #大寫字符   

[:xdigit:]   #十六進制數字(0-9,a-f,A-F)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM