定位符:同時錨定開頭和結尾,做精確匹配;單一錨定開頭或結尾或者不錨定的,做模糊匹配。
^ :錨定開頭 ^a 以a開頭 預設錨定乙個字元匹配符:匹配字串$ :錨定結尾 a$ 以a結尾 預設錨定乙個字元
. :匹配除回車以外的任意乙個字元e.g.( ) :字串分組
[ ] :定義字元類,匹配括號中的乙個字元
[ ^ ] :表示否定括號**現字元類中的字元,取反。
\ :轉義字元
| : 或
1)精確匹配 以a開頭c結尾 中間任意 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a.c$" file
accabc
a_cazc
a ca3c
2)模糊匹配 以cc結尾的字串 因為$只能錨定單個字元,如果是乙個字串就需要用()來做定義
[root@zutuanxue ~]# egrep "(cc)$" file
abcc
aabbcc
accccc
3)精確匹配 以a開頭c結尾 中間是a-z,0-9 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[a-z0-9]c$" file
accabc
a3c4)精確匹配 以a開頭c結尾 中間不包含a-z,0-9 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[^a-z0-9]c$" file
a_cazc
a c5)精確匹配 以e開頭f結尾 中間是*號 長度為三個位元組的字串 e*f
[root@zutuanxue ~]# egrep "^e\*f$" file
e*f6)精確匹配 以a開頭b或c結尾 中間是任意 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a.(b|c)$" file
accabc
asba_c
azca c
a3c
限定符:對前面的字元或者(字串)出現的次數做限定說明
* :某個字元之後加星號表示該字元不出現或出現多次 a* (ab)*e.g.?:與星號相似,但略有變化,表示該字元出現一次或不出現
+ :與星號相似,表示其前面字元出現一次或多次,但必須出現一次
:某個字元之後出現,表示該字元最少n次,最多m次
:正好出現了m次
1)精確匹配 以a開頭 c結尾 中間是有b或者沒有b 長度不限的字串
[root@zutuanxue ~]# egrep "^ab*c$" file
acabbc
abbbc
abbbbbc
abc2)精確匹配 以a開頭 c結尾 中間只出現一次b或者沒有b的字串
[root@zutuanxue ~]# egrep "^ab?c$" file
acabc
3)精確匹配 以a開頭 c結尾 中間是有b且至少出現一次 長度不限的字串
[root@zutuanxue ~]# egrep "^ab+c$" file
abbc
abbbc
abbbbbc
abc4)精確匹配 以a開頭 c結尾 中間是有b且至少出現兩次最多出現四次 長度不限的字串
[root@zutuanxue ~]# egrep "^abc$" file
abbc
abbbc
5)精確匹配 以a開頭 c結尾 中間是有b且正好出現三次的字串
[root@zutuanxue ~]# egrep "^abc$" file
abbbc
6) 精確匹配 以a開頭 c結尾 中間是有b且至少出現一次的字串
[root@zutuanxue ~]# egrep "^abc$" file
abbc
abbbc
abbbbbc
abc
正規表示式posix字元:posix字元一次只匹配乙個範圍中的乙個位元組
[:alnum:] 匹配任意字母字元0-9 a-z a-ze.g.[:alpha:] 匹配任意字母,大寫或小寫
[:digit:] 數字 0-9
[:graph:] 非空字元( 非空格控制字元)
[:lower:] 小寫字元a-z
[:upper:] 大寫字元a-z
[:cntrl:] 控制字元
[:print:] 非空字元( 包括空格)
[:punct:] 標點符號
[:blank:] 空格和tab字元
[:xdigit:] 16 進製數字
[:space:] 所有空白字元( 新行、空格、製表符)
注意[[ ]] 雙中括號的意思: 第乙個中括號是匹配符 匹配中括號中的任意乙個字元,第二個是格式 如[:digit:]
1)精確匹配 以a開頭c結尾 中間a-za-z0-9任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:alnum:]]c$" file
accabc
azca3c
2)精確匹配 以a開頭c結尾 中間是a-za-z任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:alpha:]]c$" file
accabc
azc3)精確匹配 以a開頭c結尾 中間是0-9任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:digit:]]c$" file
a3c4)精確匹配 以a開頭c結尾 中間是a-z任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:lower:]]c$" file
accabc
4)精確匹配 以a開頭c結尾 中間是a-z任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:upper:]]c$" file
azc5)精確匹配 以a開頭c結尾 中間是非空任意字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:print:]]c$" file
accabc
a_cazc
a ca3c
6)精確匹配 以a開頭c結尾 中間是符號字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:punct:]]c$" file
a_c7)精確匹配 以a開頭c結尾 中間是空格或者tab符字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:blank:]]c$" file
a c類似
[root@zutuanxue ~]# egrep "^a[[:space:]]c$" file
a c8)精確匹配 以a開頭c結尾 中間是十六進製制字元 長度為三個位元組的字串
[root@zutuanxue ~]# egrep "^a[[:xdigit:]]c$" file
accabc
a3c
shell正規表示式
句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...
shell正規表示式
句點 匹配單字元 1 匹配任意單ascii 字元,可以為字母,或為數字。2 舉例 xc.匹配dexc1t 23xcdf 等,w.w.w.匹配rwxrw rw 行首以 匹配字串或字串行 1 允許在一行的開始匹配字元或單詞。2 舉例 01 匹配0011cx4 c01sdf 等,d 匹配drwxr xr ...
shell 正規表示式
一 從頭開始 echo the book sed n the p 二 結尾 三 聯合定位 this is a test 四 點字元 用於匹配除換行符之外的任何乙個單一字元 五 字元類 定義一類字元,用於匹配文字模式中的某一位置 例如 echo n ch at p data the cat is sl...