一.【匹配字符】
. 匹配任意單個(gè)字符
[ ] 匹配指定范圍內(nèi)的任意字符
[^] 匹配非指定范圍內(nèi)的任意字符eg: grep '^[^0-9]' file 過濾出非數(shù)字開頭的行
[:alpha:] 字母字符
[:lower:] 小寫字母字符
[:upper:] 大寫字母字符
[:digit:] 數(shù)字
[:alnum:] 字母數(shù)字字符
[:space:] 空白字符(禁止打?。缁剀嚪?、換行符、豎直制表符和換頁(yè)符
[:punct:] 標(biāo)點(diǎn)字符
[:cntrl:] 控制字符(禁止打印)
[:print:] 可打印字符使用時(shí)一般使用兩個(gè)中括號(hào),具體會(huì)在下面的例子中使用。
二.【匹配次數(shù)】
* 匹配前面的字符任一次
.* 匹配任意長(zhǎng)度的任意字符(注意貪婪模式,比如 grep “r.*t” /etc/passwd )
x\{m,n\} 指定前面的字符至少出現(xiàn)m次,至多出現(xiàn)N次。
x\{m,\} 指定前面的字符至少出現(xiàn)m次
x\{0,n\} 指定前面的字符至多出現(xiàn)N次
x\{m\} 精確匹配m次? 匹配其前面的字符0或1次
三.【錨定符】
1.^ 錨定行首 grep "^r..t" /etc/passwd
2.$ 錨定行尾 grep "h$" /etc/passwd
3.^$ 錨定空白行 grep "^$" /etc/passwd
4..\(\)對(duì)字符分組? grep? "\(l..e\).*\1r"
示例:
grep --color "l\([13]\):\1:.*:\1"? /etc/initta
四.【選項(xiàng)】
-v? ? 對(duì)結(jié)果取反
-i? ? 忽略字母大小寫
-o? ? 僅顯示匹配到的字符串(行的其他內(nèi)容不顯示)
-E? ? 支持?jǐn)U展的正則表達(dá)式(egrep)
? ? 1) ?|? 或者
? ? 2) +? 次數(shù)匹配,匹配其前的額字符一次或者多次
? ? 3) '(oo)'匹配兩個(gè)oo為一組
? ?4)? 表示0個(gè)或1個(gè)前面的字符
-A n? ? 顯示匹配到的行下面n行
-B n? ? 顯示匹配到的行上面n行
-C n? ? 顯示匹配到的行上下面各顯示n行
-r ? ? 遍歷文件