shell正則表達式RE及grep

1、正則表達式:python

正則表達式(regular expression, RE)是一種字符模式,用於在查找過程當中匹配指定的字符。在大多數程序裏,正則表達式都被置於兩個正斜槓之間;例如/l[oO]ve/就是由正斜槓界定的正則表達式,正則表達式具有很強大的文本匹配功能,可以在文本海洋中快速高效地處理文本。正則表達式

它將匹配被查找的行中任何位置出現的相同模式。在正則表達式中,元字符是最重要的概念。shell

2、元字符:
express

定義:元字符是這樣一類字符,它們表達的是不一樣於字面自己的含義bash

shell 元字符(也稱爲通配符) 由 shell 來解析,如 rm -rf *.pdf,元字符* Shell 將其解析爲任意多個字符ide

正則表達式元字符 由各類執行模式匹配操做的程序來解析,好比 vi、grep、sed、awk、python工具


一、正則表達式的分類:spa

正則表達式的字符串表達方法根據不一樣的嚴謹程度與功能分爲基本正則表達式與擴展正則表達式。基礎正則表達式是經常使用的正則表達式的最基礎的部分。blog

Linux 系統中常見的文件處理工具中 grep 與 sed 支持基礎正則表達式,而 egrep 與 awk 支持擴展正則表達式。ci


==基本正則表達式元字符(gerp)

元字符 功能 示例
^ 行首定位符: ^love 
$ 行尾定位符 :love$ 
. 匹配單個字符 :l..e 
* 匹配前導符 0 到屢次: ab*love
.* 任意多個字符
[] 匹配指定範圍內的一個字符: [lL]ove
[ - ] 匹配指定範圍內的一個字符: [a-z0-9]ove
[^] 匹配不在指定組內的字符 :[^a-z0-9]ove
\ 用來轉義元字符 :love\. 
\< 詞首定位符 :\<love 
\> 詞尾定位符 :love\> 
x\{m\} 字符 x 重複出現 m 次: o\{5\}
x\{m,\} 字符 x 重複出現 m 次以上: o\{5,\} 
x\{m,n\} 字符 x 重複出現 m 到 n 次: o\{5,10\}

「*」僅匹配前導符這一個字符

image.png

「[ ]」匹配範圍內一個字符

image.png

「^」在元字符集合「[ ]」符號內外的做用不一樣

image.png

轉義符「\」的使用,及特殊元字符的使用

image.png

{}限定匹配個數

image.png

===擴展正則表達式元字符(egrep)

+ 匹配一個或多個前導字符 [a-z]+ove 
? 匹配零個或一個前導字符 lo?ve 
a|b 匹配 a 或 b love|hate
() 組字符 loveable|rs love(able|rs) ov+
(..)(..)\1\2 標籤匹配字符 (love)able\1er
x{m} 字符 x 重複 m 次 o{5} 
x{m,} 字符 x 重複至少 m 次 o{5,}
x{m,n} 字符 x 重複 m 到 n 次 o{5,10}

()匹配()裏的全部字符,順序相同

image.png



二、文本處理器:在 Linux 系統中常見的文件處理工具中 grep 與 sed 支持基礎正則表達式,而 egrep 與 awk 支持擴展正則表達式。

grep/egrep:過濾,查找。

grep [選項] ‘操做’ 參數

經常使用選項

-n:顯示行號
-i:不分大小寫
-v:反向查找
-c:統計數量

awk與sed請看下章。

相關文章
相關標籤/搜索