歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Grep 正則表達式學習筆記

今天我們來了解一下 grep

grep: 基本正則表達式
egrep: 擴展正則表達式
fgrep: 不支持正則表達式元字符,搜索字符串的速度快

grep 全稱: Global search Regular Exmpression and Printing全面搜索正則表達式並把它打印出來

格式  grep [options] 'pattern' FILE

Grep命令行
-f File,--file=File:從文件中提取模板。空文件中包含0個模板,所以什麼都不匹配。
-h,--no-filename:當搜索多個文件時,不顯示匹配文件名前綴。
-i,--ignore-case:不區分大小寫
-q,--quiet:取消顯示,只返回退出狀態。0則表示找到了匹配的行。
-l,--files-with-matches:打印匹配模板的文件清單。
-L,--files-without-match:打印不匹配模板的文件清單。
-n,--line-number:在匹配的行前面打印行號。
-s,--silent:不顯示關於不存在或者無法讀取文件的錯誤信息。
-v,--revert-match:反向選取,只顯示不匹配的行。
-w,--word-regexp:如果被\<和\>引用,就把表達式做為一個單詞搜索。
-E,使用擴展的正則表達式。
-O,只顯示被模式匹配到的字符串。
-r, 遞歸搜索所有文件。

特殊字符

^
行的開始 如:'^root'匹配所有以root開頭的行。

$
行的結束 如:'/bin/bash$'匹配所有以/bin/bash結尾的行。

.
匹配一個非換行符的字符 如:'r.*h'匹配r後接一個任意字符,然後是h。

*
匹配零個或多個先前字符 如:'root*'匹配所有一個或多個空格後緊跟root的行。 .*一起用代表任意字符。

[]
匹配一個指定范圍內的字符,如'[Rr]oot'匹配Root和root。

[^]
匹配指定范圍外的任意單個字符
\(..\)
標記匹配字符,
\<
單詞的開始 錨定詞首,如:'\<grep'匹配包含以grep開頭的單詞的行。
\>
單詞的結束 錨定詞尾,如'grep\>'匹配包含以grep結尾的單詞的行。
x\{m\}
重復字符x,m次,如:'0\{5\}'匹配包含5個o的行。
x\{m,\}
重復字符x,至少m次,如:'o\{5,\}'匹配至少有5個o的行。
x\{m,n\}
重復字符x,至少m次,不多於n次,如:'o\{5,10\}'匹配5--10個o的行。
\b = \>
錨定單詞
\(\) 分組 \(pattern\)

Copyright © Linux教程網 All Rights Reserved