Linux 附帶有 GNU grep 命令工具,它支持?jǐn)U展正則表達(dá)式,而且 GNU grep 在所有的 Linux 系統(tǒng)中都是默認(rèn)有的。Grep 命令被用于搜索定位存儲(chǔ)在您服務(wù)器或工作站上的任何信息。
(1)正則表達(dá)式:正則表達(dá)式就是用于匹配每行輸入的一種模式,模式是指一串字符序列。如:^new world1|world2 [^]
在/etc/passwd目錄中搜索nginx,搜索中是區(qū)分大小寫的;如果想不要區(qū)分請(qǐng)?zhí)砑訁?shù):-i
(2)描點(diǎn):你可以分別使用 ^ 和 $ 符號(hào)來正則匹配輸入行的開始或結(jié)尾。
(a)查找以apache開頭的行
(b)查找以nologin結(jié)尾的行
(c)查找僅包含foo的行
(c)查找空行
(d)放在括號(hào)內(nèi)的表達(dá)式,即包在 "[:" 和 ":]" 之間的字符類的名字,它表示的是屬于此類的所有字符列表。標(biāo)準(zhǔn)的字符類名稱如下:
[:alnum:] - 字母數(shù)字字符
[:alpha:] - 字母字符
[:blank:] - 空字符: 空格鍵符 和 制表符
[:digit:] - 數(shù)字: 0 1 2 3 4 5 6 7 8 9
[:lower:] - 小寫字母: a b c d e f g h i j k l m n o p q r s t u v w x y z
[:space:] - 空格字符: 制表符、換行符、垂直制表符、換頁(yè)符、回車符和空格鍵符
[:upper:] - 大寫字母: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
如:顯示含有數(shù)字的行
(3)通配符:可以使用 "." 來匹配單個(gè)字符。例子中匹配以 "b" 開頭以 "t" 結(jié)尾的3個(gè)字符的單詞:
如搜尋以g[a-zA-Z0-9]n結(jié)尾的行,這里的點(diǎn)代表任意一個(gè)字符
(4)轉(zhuǎn)義符:去掉特殊符號(hào)的屬性,如去掉點(diǎn)的通配符特性
(5)搜索以”-”符號(hào)開頭的模式:要使用 -e 選項(xiàng)來搜索匹配 --test-- 字符串,如果不使用 -e 選項(xiàng),grep 命令會(huì)試圖把 --test-- 當(dāng)作自己的選項(xiàng)參數(shù)來解析:
(6)怎么使用 grep 的“或”匹配?
如顯示/etc/passwd文件含有apache或者nginx詞的行
(7)怎么使用 grep 的“和”匹配?
如搜尋具有apache詞和nginx詞的行
(8)怎樣使用序列檢測(cè):
egrep co{2}l #o字母出現(xiàn)兩次
egrep co{2,}l #o字母至少出現(xiàn)2次