正則表達式grep用法詳解

grep是一種文本過濾工具,接下來通過本文給大家介紹正則表達式grep用法,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友參考下吧

語法:grep 選項 ‘word' filename

-c:打印符合要求的行數
-i:不區分大小寫
-n:在輸出符合要求的行的同時顯示行號
-v:打印不符合要求的行
-A:後跟一個數字n,表示打印符合要求的行以及下面n行
-B:後跟一個數字n,表示打印符合要求的行以及上面n行
-C:後跟一個數字n,表示打印符合要求的行以及上下各n行
-r:會把目錄下所有的文件全部遍歷
--color:把匹配到的關鍵詞用紅色標示

例子:

過濾出帶有某個關鍵詞的行並輸出行號

grep -n ‘root' 1.txt

過濾出不帶有某個關鍵詞的行並輸出行號

grep -nv ‘root' 1.txt

過濾出所有包含數字的行

grep ‘[0-9]‘ 1.txt

過濾出所有不包含數字的行

grep -v ‘[0-9]‘ 1.txt

去除所有以#開頭的行

grep -v ‘^#‘ 1.txt

去除所有空行和以#開頭的行

grep -v ‘^$‘ 1.txt|grep -v ‘^#‘

過濾出以英文字母開頭的行

grep ‘^[a-zA-Z]‘ 1.txt

過濾出以非數字開頭的行

grep -v ‘^[0-9]‘ 1.txt或者grep ‘^[^0-9]‘ 1.txt

過濾任意一個或多個字符

grep ‘r.o‘ 1.txt;grep ‘rt‘ 1.txt ;grep ‘r.t‘ 1.txt

過濾出包含root的行以及下面一行

grep -A1 ‘root‘ 1.txt

過濾出包含root的行以及上面一行

grep -B1 ‘root‘ 1.txt

指定過濾字符次數

grep ‘o{2}‘ 1.txt

把一個目錄下,過濾所有.php文檔中含有eval的行

grep -r --include=".php" ‘eval‘ /data/

過濾兩個或多個關鍵詞

grep -E ‘123|abc‘ filename #找出文件中包含123或者abc的行

或者egrep ‘123|abc‘ filename

或者awk ‘/123|abc/‘ filename

egrep=grep -E

匹配1個或者1個以上+前面的字符

egrep ‘o+‘ 1.txt

匹配0個或者1個?前面的字符

egrep ‘o?‘ 1.txt

匹配roo或者匹配body

egrep ‘roo|body‘ 1.txt

用括號表示一個整體,下面例子會匹配roo或者ato

egrep ‘r(oo)|(at)o‘ 1.txt

匹配1個或者多個oo

egrep ‘(oo)+‘ 1.txt

.:表示任意一個字符
:表示0個或多個前面的字符
+:表示1個或多個+前面的字符
?:表示0個或1個?前面的字符
.*:表示任意個任意字符(包含空行)
注意:+和?grep不支持,egrep才支持。

總結

以上所述是小編給大家介紹的正則表達式grep用法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章