1、grep程序
1)命令:grep egrep fgrep,用來進行 行模式(pattern手動寫)匹配的
egrep = grep -E //使用正則表達式進行匹配
fgrep = fast grep //只使用文件通配符進行匹配
*grep默認使用正則表達式進行文本匹配
2)用法:
grep[option]...PATTERN[filename]
3)常見選項(option):
-E 支持使用擴展的正則表達式(regexp)
-P 使用Perl語言的正則表達式引擎進行搜索(每種語言的正則表達式引擎都不相同,甚至grep、sed、awk使用的regexp的引擎也不相同)
-c 統計計數
*-i 忽略大小寫
*-v 進行反選
*-o 僅僅輸出匹配的內容(默認輸出是匹配到的行)
--color=auto 語法zhuose
-n 顯示行號
-w 匹配固定單詞
2、PATTERN -- 正則表達式
作用:通過一些特殊字符,來表示一類字符內容,然后交給前面的命令來執行;如果使用特殊字符本身含義,需要使用\來進行轉義
文件通配符:
*:任意長度任意字符
?:任意一個字符
正則表達式:
1)字符匹配
.任意一個字符
| 或
[] 范圍內任意一個字符
[^] 范圍外任意一個字符
字符類:[:digit:][:alnum:][:alpha][:space:][:punct:]
2)次數匹配
\* 匹配前面的一個字符0次到n次
\?匹配前面的一個字符0次到1次
\+ 匹配前面的一個字符1次到n次
\{m\}匹配前面的一個字符m次
\{m,n\}匹配前面的一個字符m到n次
\{0,n\}匹配前面的字符0次到n次
\{m\}匹配前面一個字符至少m次
3)位置錨定
^ 錨定行首
$ 錨定行尾
\b 錨定詞首和錨定詞尾
\> 錨定詞尾
\< 錨定詞首 \<root\>
4)分組
\(\) 示例:\(abc\)* 把abc看成一個整體
*分組特性:默認情況下,Linux系統會為分組指定變量,變量的表示形式\1\2\3..