一、Regex
Regex模式:貪婪模式、非貪婪模式
Regex包括:基本Regex、擴充Regex
1、基本Regex
^ |
錨定行首的內容,如:^pattern |
$ |
錨定行尾的內容,如:pattern$ |
^$ |
空白行 |
. |
匹配任意單個字元 |
* |
匹配其左邊字元任意次 |
.* |
匹配任意長度的任一字元 |
[ ] |
匹配指定範圍內的任意單個字元 |
[^] |
匹配指定範圍外的任意單個字元 |
\? |
匹配其左邊字元0次或1次 |
\{m,n\} |
匹配其左邊字元至少m次,至多n次 |
\{m,\} |
匹配其左邊字元至少m次 |
\{m\} |
匹配其左邊字元精確m次 |
\<
|
錨定詞首,如:\<pattern |
\> |
錨定詞尾,如:pattern\> |
\<\> |
錨定單詞並非真正意義上的英文單詞),\<pattern\> |
\b |
字元邊界符,與\<、\>功能類似,如:\bpattern\b 錨定單詞)
|
\(pattern\) |
分組,如:\(abc\).*\1 說明:此處1表達第1個分組 |
[:lower:]
|
小寫字母 |
[:upper:] |
大字字母 |
[:digit:] |
數字 |
[:alpha:] |
字母 |
[:alnum:] |
字母和數字 |
[:space:] |
空格 |
[:punct:] |
標符號字母、數字、控制、空白符以外的字母) |
2、擴充Regex
+ |
重複一個或一個以上的前一個字元 |
? |
零個或一個前一個字元
|
| |
或,多選一
|
() |
分組
|
()+ |
重複一個或一個以上的前一個分組 |
{m,n} |
匹配其左邊字元至少m次,至多n次 |
\<\> |
錨定單詞 |
同時包括所有基本Regex,除\<、\>外,擴充Regex中不需要使用反斜線。
更多Regex使用可查看:man 7 regex
也可參考:http://www.cnblogs.com/lcf/articles/807523.html
二、grep 使用
grep 支援基本Regex
egrep 支援擴充Regex相當於:grep -E)
fgrep 不支援模式比對,但速度很快
命令:grep
作用:列印出與模式比對的行
參數:
--color=auto |
匹配到的資訊使用顏色標記,auto選項可省略 修改預設色彩配置(前景色彩後景色):export GREP_COLOR='01;36' |
-v |
反射選取 |
-o |
只顯示被模式比對到的字串 |
-i |
不區分字元大小寫 |
-w |
匹配單詞 |
-r |
遞迴尋找 |
-A # |
顯示所匹配到行,及其後面的#行 |
-B # |
顯示所匹配到行,及其前面的#行 |
-C # |
顯示所匹配到行,及其前後的#行 |
-E |
使用擴充Regex |
三、舉例:
匹配IP地址:
ifconfig |egrep --color "([1-9]|[1-9][0-9]|1[0-9]{1}|2[0-4][0-9]|25[0-5])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([1-9]|[1-9][0-9]|1[0-9]{1}|2[0-4][0-9]|25[0-5])"
四、注意事項
1、grep 基本正則)使用中,指示符必須加反斜線\,而egrep 擴充正則)中卻不能加反斜線\:
grep --color "\(error\)" *
egrep --color "(error)" *
egrep --color "\<(error)" * \<、\>:單詞錨定除外)
本文出自 “Linux/Unix 營運技術” 部落格,請務必保留此出處http://wangyc.blog.51cto.com/31193/1304976