1. grep指令參數選項
-? 同時顯示符合行上下?行,如grep -2 'pattern' filename,
-A ? 同時顯示符合行下?行grep -A 10 'pattern' filename
-B ? 同時顯示符合行上?行
-c 列印符合次數
-E 擴充正規egrep
-f 兩個檔案相同行 如,grep -f file1 file2
-F fgrep
-h
-H 同時顯示行和檔案名稱
-i 忽略大小寫
-l 只顯示已符合的檔案名稱
-n 顯示行號
-o 只顯示符合的字元
-r 遞歸查詢
-v 只顯示不符合的字元
-v 只顯示不顯示符合的行
2. grep正規表示式元字元集(基本集)
^ 錨定行的開始如:'^grep'符合所有以grep開頭的行。
$ 錨定行的結束 如:'grep$'符合所有以grep結尾的行。 ^$一起用代表空行
. 匹配一個非換行符的字符 如:'gr.p'匹配gr後接一個任意字符,然後是p。
* 符合零個或多個先前字元 如:'*grep'符合所有一個或多個空格後緊接grep的行。 .*一起用代表任意字元。
[] 匹配一個指定範圍內的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一個不在指定範圍內的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一個字母開頭,緊跟rep的行。
.. 標記匹配字符,如'love',love被標記為1。
> 錨定單字的結束,如'str>'符合包含以str結尾的單字的行。
x{m}
重複字元x,m次,如:'a{5}'符合包含5個a的行。
x{m,}
重複字元x,至少m次,如:'a{5,}'符合至少有5個a的行。
重複字元x,至少m次,不多於n次,如:'a{5,10}'匹配5-10個a的行
3. 用於egrep和grep - E的元字元擴充集
+ 符合一個或多個先前的字元。如:'[a-z]+able',符合一個或多個小寫字母後面接able的串,如loveable,enable,disable等。
? 符合零個或多個先前的字元。如:'gr?p'匹配gr後面跟著一個或沒有字符,然後是p的行。
a|b|c
匹配a或b或c。如:grep|sed符合grep或sed
() 分組符號,如g(la|oo)d匹配glad或good
()+ 多個重複分組匹配,如A(xy)+B匹配A開頭B結尾中間一個以上的xy如AxyB.AxyxyB.AxyxyxyB
作用同x{m},x{m,},x{m,n}
4. POSIX字符類
[:alnum:] 0-9, A-Z, a-z
[:alpha:] A-Z, a-z
[:digit:] 0-91: