Shell基礎之 正規表示式

2021-09-23 23:23:27 字數 1930 閱讀 6080

普通字元:只是字面的意思

元字元 :超過字面意思的意義

基本正規表示式元字元及其意義

*:0個或多個在*字元之前的那個普通字元

. #匹配任意字元

^ #匹配行首

$ #匹配行尾

#匹配字元集合

\ #轉義符

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

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

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

*  hel*o       #可以匹配helll8o、hello、hellllo

. ...73. #可以匹配abc73.、!@#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字元的單詞,利用\符號遮蔽<>符號 grep '\'

\ #jo\b 匹配值為jooob

\ #jo\b 匹配值為jooob joooob jooooooob

\ #jo\b 匹配值為jooob jooooob joooooob

[a-z] \ #hello house whowh 精確匹配5個小寫字母

echo [abc]* #開頭為a/b/c的任意多字元的檔案

echo [^abc]* #開頭不是a/b/c的任意多字元的檔案

touch - #通過窮舉來建立檔案,每個檔案匹配來建立,總共9個檔案

!$ #上一條命令中的最後乙個引數

; #表示命令結束

擴充套件正規表示式元字元及其意義

?               #匹配0個或1個在其之前的那個普通字元

+ #匹配1個或多個在其之前的那個普通字元

() #表示乙個字元集合或用在expr中

| #表示或,匹配一組可選的字元

?  jo?b

#匹配jo1b jo@b jo!b ,只匹配乙個字元。如果是job或jooob則不匹配

+ s+eu

#至少匹配前面的字元1次,可以匹配多次

* s*u

#可匹配s123u ssuu s!@#u su

()符號和|符號 re(a|e|o)d #匹配read reed reod

示例:

1、列出所有以.awk結尾的檔案  

ll *.awk

2、列出以0開頭,後面跟乙個字元且以.pem為字尾的檔案

ll 0?.pem

3、列出在a-h範圍內以字母開頭並以.awk結尾的檔案

[a-h]*.awk

4、列出以a-h範圍內字母開頭且句點後不是以.awk結尾的檔案

[a-h]*.[^awk]*

5、列出滿足在a-h範圍內以字母開頭並以.awk結尾的檔案,或列出以0開頭,後面跟乙個字元且以.pem為字尾的檔案

ll

Shell基礎之 正規表示式

普通字元 只是字面的意思 元字元 超過字面意思的意義 基本正規表示式元字元及其意義 0個或多個在 字元之前的那個普通字元 匹配任意字元 匹配行首 匹配行尾 匹配字元集合 轉義符 匹配前面字元出現n次 匹配前面字元至少出現n次 匹配前面字元出現n m次 hel o 可以匹配helll8o hello ...

Shell基礎之正規表示式

正規表示式用來在檔案中匹配符合條件的字串,正則是包含匹配,grep awk sed等命令可以支援正規表示式 萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配,ls find cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配 匹配除了換行符外任意乙個字元 類似?行首 行尾...

Shell基礎 正規表示式

shell基礎 正規表示式 正規表示式 它用來在檔案中匹配符合條件的字串,正則是包含匹配。grep awk sed等命令支援正規表示式。而萬用字元用來在系統匹配符合條件的檔名,是完全匹配。ls find cp這些命令不支援正規表示式,所以只能使用shell自己的萬用字元來進行匹配了。元字元 作用 把...