普通字元:只是字面的意思
元字元 :超過字面意思的意義
基本正規表示式元字元及其意義
*: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自己的萬用字元來進行匹配了。元字元 作用 把...