Shell編程之---Regex詳解

來源:互聯網
上載者:User

標籤:Regex   shell.   regular expression   

Regex詳解


一般字元:只是字面的意思
元字元:超過字面意思的意義

基本Regex元字元及其意義

* #0個或多個在*字元之前的那個一般字元
.               #匹配任一字元
^         #匹配行首

$        #匹配行尾

$$ #執行上一條命令

!$ #上一條命令的最後一個參數,例如是/etc/passwd,繼續對該參數操作,可以為 cat !$

[]        #匹配字元集合

\          #轉義符

\{n\}      #匹配前面字元出現n次

\{n,\}    #匹配前面字元至少出現n次

\{n,m\}    #匹配前面字元出現n-m次    

樣本
*  hel*o                #可以匹配helll8o、hello、hellllo
.  ...73.            #可以匹配abc73.、[email protected]#73?、12373c
^  ^...X86*         #可以匹配以abcX86fang開頭的字元
$  make$          #表示以make結尾
^$                 #表示空行
^.$                      #表示某行只有一個字元
[a-z]             #表示a-z所有小寫字母
[0-9]              #表示0-9所有數字
[b-q]                    #表示b-q字母
[^b-q]                  #取反,除了b-q的所有字元
[A-Za-z] [A-Za-z]*      #能匹配任何一個英文單詞
\*                  #將\後面的元字元轉換為字面意思
\<the\>              #精確匹配,只匹配the字元的單詞,利用\符號屏蔽<>符號   grep ‘\<the\>‘
\{n\}                #JO\{3\}B    匹配值為JOOOB
\{n,\}                 #JO\{3,\}B   匹配值為JOOOB JOOOOB JOOOOOOOB
\{n,m\}           #JO\{3,6\}B 匹配值為JOOOB JOOOOOB JOOOOOOB
[a-z] \{5\}          #hello house whowh 精確匹配5個小寫字母
echo [abc]*          #開頭為a/b/c的任意多字元的檔案
echo [^abc]*         #開頭不是a/b/c的任意多字元的檔案 
touch {a,b,c}-{1,2,3}    #通過窮舉來建立檔案,每個檔案匹配來建立,總共9個檔案
!$           #上一條命令中的最後一個參數
;           #表示命令結束

===========================================================================

擴充Regex元字元及其意義
?    #匹配0個或1個在其之前的那個一般字元
+     #匹配1個或多個在其之前的那個一般字元
()        #表示一個字元集合或用在expr中
|           #表示或,匹配一組可選的字元 

?  JO?B   #匹配JO1B [email protected] JO!B ,只匹配一個字元。如果是JOB或JOOOB則不匹配
+  S+EU   #至少匹配前面的字元1次,可以匹配多次
*  S*U   #可匹配S123U SSUU [email protected]#U SU
()符號和|符號  re(a|e|o)d  #匹配read reed reod

樣本
1、列出所有以.awk結尾的檔案  
     ll *.awk
2、列出以0開頭,後面跟一個字元且以.pem為尾碼的檔案 
     ll 0?.pem
3、列出在a-h範圍內以字母開頭並以.awk結尾的檔案
     ll [a-h]*.awk
4、列出以a-h範圍內字母開頭且句點後不是以.awk結尾的檔案
     ll [a-h]*.[^awk]*
5、列出滿足在a-h範圍內以字母開頭並以.awk結尾的檔案,或列出以0開頭,後面跟一個字元且以.pem為尾碼的檔案
     ll {[a-h]*.awk,0?.pem}

Shell編程之---Regex詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.