^ ^ab 【匹配a開頭的字符】
^(ab) 【匹配ab開頭的字符】
$ ab$ 【匹配b結尾的字符;因為是結尾,所以$在后面】
(ab)$ 【匹配ab結尾的字符】
\.$ 【匹配點 . 結尾的字符】
ab*c 【匹配0個或多個b,如:abc、abbbc、ac】
ab+c 【匹配1個或多個b,如:abc、abbbc】
ab?c 【匹配0個或1個b,如:ac、abc】
ab.c 【匹配任意一個字符在b和c之間,如:absc、ab%c】
ab.*c 【匹配任意的字符數在b和c之間,如:abc、ab@【$@asfasc】
{n,m}
ab{0,1}c 【匹配0個或1個b == ab?c】
ab{1,}c 【匹配1個或多個b ==ab+c】
ab{0,}c 【匹配0個或多個b ==ab*c】
\ 【反斜杠,禁用后面的特殊字符,轉換為普通字符,如:echo "\\" 結果 \】
^ 【以某個字符或字符串開頭 ^a、^(abc)、^[0-9]以數字開頭】
$ 【以某個字符或字符串結尾 a$、(ab)$、[0-9]$ 】
. 【代表任意一個字符 a.b:在a和b之間的任意一個字符】
a{7,8} 【匹配7個a或8個a】
^$ 【匹配空行;因為直接^開頭到$結尾,中間沒有任何字符也即是空了】
^# 【匹配#開頭的】
-v 【grep里取反匹配】
x|y 【匹配x或y,如:'(g|f)ood' 匹配good或food】
[a-z] 【匹配任意一個小寫字母】
[^a-z] 【匹配任意一個非小寫字】
^[a-z] 【匹配任意一個以小寫字母開頭的】
[abc] 【匹配a或b或c】
[a-zA-Z0-9]【匹配任意一個大小寫字母和數字】
^[0-9]{3} 【匹配任意3個數字開頭的】
[^0-9] 【匹配非數字】
在linux中,有通配符和正則表達式,這是兩個不同的概念。
通配符: 它是由shell解析,并且一般用于匹配文件名。如:ls
正則表達式:是一個字符匹配標準,可以匹配文本中的內容,一些命令工具按此標準實現字符匹配,常用于支持正則表達式的工具,如grep,sed等等。一般用于匹配文件中的內容。
(1).常用的通配符如下:
* 匹配任意多個字符
? 匹配任意一個字符
[ ] 方括號,匹配方括號中出現的任意一個字符
[! ] 方括號中加感嘆號,不匹配方括號中出現的任意一個字符
(2).常用的正則表達式如下:
字符匹配:
. 點,匹配任意單個字符 如:c.t 匹配c和t之間有一個字符的
* 匹配其前面一個字符出現的任意次數 ,如 c* 匹配文件中c字符出現的任意次
? 匹配其前面的字符1次或0次,如 c? 匹配文件中c字符只出現1次或0次
+ 匹配其前面一個字符出現至少一次(在擴展正則表達式中)
(3).位置匹配:
^ 錨定行首
$ 錨定行尾
\<或\b 錨定詞首,其后面的任意字符必須作為單詞首部出現
\>或\b 錨定詞尾,其后面的任意字符必須作為單詞尾部出現
\B 非單詞的開頭或結尾
^$ 空白行
\ 通常用于打開或關閉后續字符的特殊含義
(ab)* 匹配ab這個分組出現的任意次
\1 引用第一個左括號以及與之對應的右括號所包括的所有內容,同理還有\2,\3
(4).特殊子字符類:
[:alnum:] 任何字母和數字
[:alpha:] 任何字母
[:cntrl:] 控制字符,在ASCII表中對應八進制000到037,和177('DEL')
[:digit:] 任何數字
[:graph:] 匹配打印字符,相當于 '[:alnum:]' + '[:punct:]'
[:lower:] 小寫字母
[:print:] 可打印字符,相當于 '[:alnum:]' , '[:punct:]' , 和space
[:punct:] 標點符號,' ! " $ % & ( ) * +,- / : ; <= > ? @ [ ] \ ^ _ { } | ~
[:space:] 空白字符,tab , newline, vertical tab , form feed , carriage return , and space
[:upper:] 大寫字母
[:xdigit:] 任何16進制的數字,相當于[0-9a-fA-F ]
如:cat 123 | grep [[:upper:]]【外層也要帶上方括號】