正則表示式grep, egrep, fgrep
.*\1 : 匹配第一個括號所匹配的內容
2. egrep : 等同於 grep -E
egrep [options] PATTERN FILE...
PATTERN由元字元和和普通字元組成
-i : --ignore-case , 忽略大小寫
-o : --only-matching, 只顯示所匹配到的字元,二不是整行
-n : --line-number, 輸出所匹配行的行號
-v : --invert-match, 顯示除匹配行外的所有行
-A NUM : --after-context, 顯示匹配行後NUM行
-B NUM: --before-context,顯示匹配行強NUM行
-C NUM: --context,顯示匹配行前、後NUM行
PATTERN由元字元和和普通字元組成
元字元
匹配字元:
. : 匹配任意單個字元
[],[^] : 匹配指定的單個字元
[0-9], [[:digit:]] : 匹配單個數字
[[:alpha:]] : 匹配單個大、小寫字母
[[:lower:]] : 匹配單個小寫字母
[[:upper:]] : 匹配單個大寫字母
[[:alnum:]] : 匹配單個數字或字母
[[:bank:]] : 匹配單個空白字元
[[:punct:]] : 匹配標點符號
[[:contrl:]] : 匹配當控制字元
[[:xdigit:]] : 匹配單個16進位制數
匹配次數:用來指定前面的字元出現的次數
* : 任意次數,包括0次
+ : 至少一次
? : 0次或1次,前面的字元可有,可無
{m}, {0,n}, {m,n}, {m,} : 分別指m次,最多n次,m-n次,最少m次
.* : 任意長度,任意字元
位置錨定:
^ : 行首錨定,模式左側
$ : 行尾錨定,模式右側
\< : 詞首錨定,單詞模式左側,單詞指由數字和字母構成的字串
\> : 詞尾錨定,單詞右側
^PATTERN$, 匹配整行只有指定的模式
^$ : 空行
^[[:blank:]]$ : 整行無可見字元
\<word\> : 匹配整個單詞
分組
() 將任意個字元用括號括起來做一個整體進行匹配
後向引用:應用前面分組括號所匹配的內容,非模式本身, \1,\2 ...
(th).*\1 : 匹配第一個括號所匹配的內容
3.fgrep : 不支援正則表示式, 僅匹配指定的字串
fgrep [optings] PATERN File...