正则表达式grep, egrep, fgrep
grep,egrep,fgrep : print lines matching a pattern
1.grep :
grep [options] PATTERN FILE...
PATTERN由元字符和和普通字符組成
-i : --ignore-case?, 忽略大小寫(xiě)
-o : --only-matching, 只顯示所匹配到的字符,二不是整行
-n : --line-number, 輸出所匹配行的行號(hào)
-v : --invert-match, 顯示除匹配行外的所有行
-E : --extended-regexp, egrep
-F : --fixed-strings, fgrep
-P : --per-regexp
-A NUM : --after-context, 顯示匹配行后NUM行
-B NUM: --before-context,顯示匹配行強(qiáng)NUM行
-C NUM: --context,顯示匹配行前、后NUM行
元字符
匹配字符:
. : 匹配任意單個(gè)字符
[],[^] : 匹配指定的單個(gè)字符
[0-9], [[:digit:]] : 匹配單個(gè)數(shù)字
[[:alpha:]] : 匹配單個(gè)大、小寫(xiě)字母
[[:lower:]] : 匹配單個(gè)小寫(xiě)字母
[[:upper:]] : 匹配單個(gè)大寫(xiě)字母
[[:alnum:]] : 匹配單個(gè)數(shù)字或字母
[[:bank:]] : 匹配單個(gè)空白字符
[[:punct:]] : 匹配標(biāo)點(diǎn)符號(hào)
[[:contrl:]] : 匹配當(dāng)控制字符
[[:xdigit:]] : 匹配單個(gè)16進(jìn)制數(shù)
匹配次數(shù):用來(lái)指定前面的字符出現(xiàn)的次數(shù)
* : 任意次數(shù),包括0次
\+ : 至少一次
\? : 0次或1次,前面的字符可有,可無(wú)
\{m\}, \{0,n\}, \{m,n\}, \{m,\}?: 分別指m次,最多n次,m-n次,最少m次
.* : 任意長(zhǎng)度,任意字符
位置錨定:
^ : 行首錨定,模式左側(cè)
$ : 行尾錨定,模式右側(cè)
\< : 詞首錨定,單詞模式左側(cè),單詞指由數(shù)字和字母構(gòu)成的字符串
\>?: 詞尾錨定,單詞右側(cè)
^PATTERN$, 匹配整行只有指定的模式
^$ : 空行
^[[:blank:]]$ : 整行無(wú)可見(jiàn)字符
\<word\> : 匹配整個(gè)單詞
分組
?
將任意個(gè)字符用括號(hào)括起來(lái)做一個(gè)整體進(jìn)行匹配
后向引用:應(yīng)用前面分組括號(hào)所匹配的內(nèi)容,非模式本身, \1,\2 ...
?
.*\1 : 匹配第一個(gè)括號(hào)所匹配的內(nèi)容
2. egrep : 等同于 grep -E
egrep [options] PATTERN FILE...
PATTERN由元字符和和普通字符組成
-i : --ignore-case?, 忽略大小寫(xiě)
-o : --only-matching, 只顯示所匹配到的字符,二不是整行
-n : --line-number, 輸出所匹配行的行號(hào)
-v : --invert-match, 顯示除匹配行外的所有行
-A NUM : --after-context, 顯示匹配行后NUM行
-B NUM: --before-context,顯示匹配行強(qiáng)NUM行
-C NUM: --context,顯示匹配行前、后NUM行
PATTERN由元字符和和普通字符組成
元字符
匹配字符:
. : 匹配任意單個(gè)字符
[],[^] : 匹配指定的單個(gè)字符
[0-9], [[:digit:]] : 匹配單個(gè)數(shù)字
[[:alpha:]] : 匹配單個(gè)大、小寫(xiě)字母
[[:lower:]] : 匹配單個(gè)小寫(xiě)字母
[[:upper:]] : 匹配單個(gè)大寫(xiě)字母
[[:alnum:]] : 匹配單個(gè)數(shù)字或字母
[[:bank:]] : 匹配單個(gè)空白字符
[[:punct:]] : 匹配標(biāo)點(diǎn)符號(hào)
[[:contrl:]] : 匹配當(dāng)控制字符
[[:xdigit:]] : 匹配單個(gè)16進(jìn)制數(shù)
匹配次數(shù):用來(lái)指定前面的字符出現(xiàn)的次數(shù)
* : 任意次數(shù),包括0次
+ : 至少一次
? : 0次或1次,前面的字符可有,可無(wú)
{m}, {0,n}, {m,n}, {m,}?: 分別指m次,最多n次,m-n次,最少m次
.* : 任意長(zhǎng)度,任意字符
位置錨定:
^ : 行首錨定,模式左側(cè)
$ : 行尾錨定,模式右側(cè)
\< : 詞首錨定,單詞模式左側(cè),單詞指由數(shù)字和字母構(gòu)成的字符串
\>?: 詞尾錨定,單詞右側(cè)
^PATTERN$, 匹配整行只有指定的模式
^$ : 空行
^[[:blank:]]$ : 整行無(wú)可見(jiàn)字符
\<word\> : 匹配整個(gè)單詞
分組
() 將任意個(gè)字符用括號(hào)括起來(lái)做一個(gè)整體進(jìn)行匹配
后向引用:應(yīng)用前面分組括號(hào)所匹配的內(nèi)容,非模式本身, \1,\2 ...
(th).*\1 : 匹配第一個(gè)括號(hào)所匹配的內(nèi)容
3.fgrep : 不支持正則表達(dá)式, 僅匹配指定的字符串
fgrep [optings] PATERN File...
Andraw|朱標(biāo)總結(jié)
以上是生活随笔為你收集整理的正则表达式grep, egrep, fgrep的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【正则表达式1】C++11正则表达式
- 下一篇: grep、egrep、fgrep的用法与