shell egrep 正則表達(dá)式

名詞解釋

正則表達(dá)式(regular expression, RE)是一種字符模式,用于在查找過程中匹配指定的字符。
在大多數(shù)程序里,正則表達(dá)式都被置于兩個正斜杠之間;例如/l[oO]ve/就是由正斜杠界定的正則表達(dá)式,它將匹配被查找的行中任何位置出現(xiàn)的相同模式。在正則表達(dá)式中,元字符是最重要的概念。

定義:元字符是這樣一類字符,它們表達(dá)的是不同于字面本身的含義

基本正則表達(dá)式元字符

表達(dá)式 含義
^ 行首定位符
$ 行尾定位符
. 匹配單個字符
* 匹配前導(dǎo)符0到多次
.* 匹配任意多個字符
[ ] 匹配指定范圍內(nèi)的一個字符
[ - ] 匹配指定范圍內(nèi)的一個字符,連續(xù)的范圍
[^] 匹配不在指定范圍內(nèi)的字符
\ 用來轉(zhuǎn)義元字符,褪去特殊含義
\< 詞首定位符
\> 詞尾定位符
( ) \(..\) 匹配稍后使用的字符的標(biāo)簽
x\{m\} 字符x重復(fù)出現(xiàn)m次
x\{m,\} 字符x重復(fù)出現(xiàn)m次以上
x\{m,n\} 字符x重復(fù)出現(xiàn)m次到n次

拓展正則表達(dá)元式字符

表達(dá)式 含義
+ 匹配1~n個前導(dǎo)字符
? 匹配0~1個前導(dǎo)字符
a|b 匹配a或b
( ) 組字符

示例 1:

// 查找匹配
#找到love開頭的行
[root@localhost ~]# egrep "^love" file

#找到love結(jié)尾的行
[root@localhost ~]# egrep "love$" file

#找到l開頭,一個任意字符,ve結(jié)尾
[root@localhost ~]# egrep "l.ve" file

#l開始,零個或多個o,ve結(jié)尾
[root@localhost ~]# egrep "lo*ve" file

#大L 或者小L 開頭的  ove
[root@localhost ~]# egrep "[Ll]ove" file

#love最后一個小寫字母
[root@localhost ~]# egrep "love[a-z]" file

#love最后一個(不是字母或者數(shù)字),而是符號
[root@localhost ~]# egrep "love[^a-zA-Z0-9]" file

示例 2:

// 查找匹配
#找到所有行
[root@localhost ~]# egrep  ".*"  file

#找到空行
[root@localhost ~]# egrep  "^$"  file

#開頭一個大寫,最后2個任意字符
[root@localhost ~]# egrep  "^[A-Z]..$"  file

#一個大寫開頭,0到多個小寫或空格,3,最后是0-5的一個數(shù)字
[root@localhost ~]# egrep  "^[A-Z][a-z ]*3[0-5]"  file

#0到多個小寫字母,最后一個點
[root@localhost ~]# egrep  "[a-z]*\."  file

#0到多個空格開頭,一個大寫,一個小寫,再一個小寫結(jié)尾
[root@localhost ~]# egrep  "^ [A-Z][a-z]*[a-z$]"  file

#0到多個字母開頭,非逗號,0到多個英文結(jié)尾
[root@localhost ~]# egrep  "[A-Za-z]*[^,][A-Za-z]*"  file

#找到 fourth 單詞
[root@localhost ~]# egrep  "\<fourth\>"  file

#找到f開頭th結(jié)尾的單詞
[root@localhost ~]# egrep  "\<f.*th\>"  file

#找到5兩次2三次和一個點
[root@localhost ~]# egrep  "5{2}2{3}\."  file

#找到0到多個 ,空格或tab的行
[root@localhost ~]# egrep  "[ \t]*"  file

#找到以#號開頭的行
[root@localhost ~]# egrep  "^#"  file

#找到有0到多個,空格或者tab開頭的行,的注釋行
[root@localhost ~]# egrep  "^[ \t]*#"  file

#過濾掉空行與\#注釋的行
[root@localhost ~]# egrep -v "^$|#" file
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容