正則表達式 及grep 小結

正則表達式 :就是處理字符串的方法,它是以行爲爲單位來進行字符串的處理行爲,通過一些特殊符號的輔助,可以讓用戶輕易達到查找,刪除,替換某特定字符串的處理程序。

正則表達式並不是一個工具程序,而是一種字符串處理的標準依據,只要工具程序支持這種表示法,那麼該工具程序就可以用來作爲正則表達式的字符串處理之用。

例如 :vi grep awk sed 等工具都支持正則表達式

特殊字符 基本正則表達式 :

  1. .: 匹配任意單個字符  
  2. []: 指定範圍內的任意單個字符  
  3. [^]:否定符  
  4.     [:upper:],A-Z [:lower:]a-z, [:digit:]0-9, [:alpha:]a-z A-Z, 
  5.     [:alnum:]a-z A-Z 0-9,[:space:]空白字符, [:punct:] “ ‘ ?!;:#$   
  6.     [^[:upper:]] 不是A-Z的  
  7. ?:匹配其前面的字符0次或1次  需要加\? 纔可以使用
  8. +:匹配其前面的字符至少一次  
  9. *:匹配其前面的字符任意次 
  10. .*:任意長度的任意字符,貪婪模式  最長匹配  
  11. X\{m\} 精確匹配X m次 
  12. X\{m,n\} 匹配X m到n 次 
  13. X\{0,n\} 匹配X最多 n次 
  14. X\{m,\} 匹配X最少 m次 

^$ :錨定行首 與行尾 ^$合用表示空白行

\< \>: 錨定詞首 與詞尾 \bWORD\b 同樣
\(\):分組 後向引用 \1 ,\2

擴展的正則表達式: \(\)-->() \{\}-->{} +: 次數匹配,匹配其前的字符至少1次; |:或者 a|b, (C|c)at: Cat,cat; C,cat

grep :查找文件裏符合條件的字符串 文本過濾工具
grep [options ] pattern files

選項 模式 文件

pattern 可以使用 ’‘ 也可以使用 ”“
 

常用選項: -n 順便輸出行號

-v :對結果取反

-i :忽略字母大小寫

-o :僅顯示匹配到的字符串

-E:支持擴展正則表達式

-A n :符合條件的行的後面n行
-B n :符合條件的行的前面n行 -C n :符合條件的行的前後N行
example :

  1. #grep --color "r.*t" /etc/passwd 
  2. root:x:0:0:root:/root:/bin/bash  貪婪匹配
  3. operator:x:11:0:operator:/root:/sbin/nologin 
  4. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 
  1. # grep --color -o "r.*t" /etc/passwd  -o 顯示匹配到的內容
  2. root:x:0:0:root:/root 
  3. rator:x:11:0:operator:/root  貪婪匹配
  4. r:/var/ft 
  1. # grep --color -o "^r.*t" /etc/passwd  ^ 錨定行首
  2. root:x:0:0:root:/root 
  3. rpc:x:32:32:Port 
  1. # grep --color -o "\<r.*t\>" /etc/passwd 錨定單詞
  2. root:x:0:0:root:/root 
  3. root 
# echo "abbc ab abc ac " | grep -o "ab\?c" ?需要加\轉義一下 匹配 0次或1次 abc ac

# echo "abbc ab abc ac " | grep -o -E "ab?c" 擴展正則表達式 可以直接使用 abc ac

\2 引用的tty \1引用的是數字


 

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