Linux 正則表達式詳解


正則表達式(REGULAR):為處理大量的字符串而定義的一套規則和方法,為了處理大量字符串而生

常見命令參數

基礎正則表達式

. :有且只有任意一個字符(包括空格)
* :重復前面任意0或者多個字符
.*:匹配任意字符==>所有,包括空格
\ :轉義字符,讓有意義的字符,顯示原型  \$  --> $本身
^ :^d  以d開頭的文件
$ :/$  以/結尾的文體
^$:表示空行    grep -vn "^$" h.txt -->不顯示空行  -n 顯示行號
  sed -r 's#(.*) fff#I am \1#g' h.txt  僅僅取每一行的()里面的東西
    r==reqular
[abc]   匹配字符集內的任意一個字符  [0-9]匹配0-9 [a-z] a-z
[^abc]  不匹配字符集內的任意字符,相當於取反
a\{n,m} 重復前一個字母,n到m次  
     grep "0\{2\}" h.txt  重復0 2次
     ==>  egrep "0{2}" h.txt 
     ==>  grep -E "0{2}" h.txt 
\{n,\}   重復至少n次
\{,m\}   重復之多m次
    注意:egrep ,sed -r過濾一般特殊字符可以不轉義
\w  : 只打印字母
    grep "\w" h.txt  --> a b c d e f g h i 
\W  : 打印非字母
\b  :匹配單詞的定界符
    grep "\bhello\b" h.txt
\d  : 表示數字

常用的命令展示

Linux grep/egrep命令詳解

Linux sed命令詳解

Linux awk命令詳解

擴展正則表達

擴展正則表達式:多用於 egrep,grep -E 
    1. + 重復一個或者一個以上的字符
         grep -Eo "go+d" h.txt --> god good 
    2. ?重復0個或者一個  比 . 的范圍大 
         grep -Eo "g?d"   h.txt -->  gd, d 
         grep -Eo "go?d"  h.txt -->  gd god  
    3. | 查詢多個符合的字符串 
         grep -Eo "hello|world" --> hello  world
    4. ()找出"用戶組"字符串
         egrep "g(la|oo)d" h.txt --> good glad

 

關於正則的一些小知識

1.Linux中適用於:grep,egrep,awk,sed,  
2.區別通配符和正則  例如  ls *.log這里的 * 表示 所有的
3.Linux一般以行為單位
4.注意字符集 export LC_ALL=C  
5.可以在 man grep/sed 過濾REGULAR 查看更多正則 


免責聲明!

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



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