grep使用詳解

2021-06-23 07:29:35 字數 1354 閱讀 9576

grep(全域性正規表示式版本)允許對文字檔案進行模式查詢,grep支援基本正規表示式,也支援其擴充套件集。

grep有三種變形:

grep 標準grep命令

egrep 擴充套件grep命令,支援基本及擴充套件的正規表示式,但不支援q模式範圍的應用

fgrep 快速grep命令,允許查詢字串而不是乙個模式,不要誤解fast,其實和grep速度相當

grep的一般格式:

grep [選項]基本正規表示式 [檔案]   這裡的基本正規表示式可為字元

使用雙引號:

字串引數最好使用雙引號擴起來,一是以防被誤解為shell命令,二是可以用來查詢多個單詞組成的字串,在呼叫變數的時候也要使用雙引號,比如grep "$myvar",否則無結果,在呼叫模式匹配是,應使用單引號

grep的選項:

-c只輸出匹配行的計數,比如grep -c "test" *.txt,將顯示4,則說明包含test的有4行

-i 不區分大小寫(只適用於單字元),比如grep -i "bank"*.c等同於grep -i "bank" *.c

-h查詢多檔案時不顯示檔名

-l查詢多檔案時只輸出包含匹配字元的檔名

-n顯示匹配行及行號,在顯示出內容的每行前面會顯示行數

-s不顯示不存在或無匹配文字的錯誤資訊

-v 顯示不包含匹配文字的所有行,grep -v "test"abc.txt,將顯示不包含"test"的行內容

-w以單詞為單位進行匹配

-e允許使用擴充套件模式匹配

grep和正規表示式:

使用正規表示式最好使用單引號括起來,避免引數被做為shell命令執行

^ 錨定行的開始如:'^grep'匹配所有以grep開頭的行。

$ 錨定行的結束 如:'grep$'匹配所有以grep結尾的行。

. 匹配乙個非換行符的字元 如:'gr.p'匹配gr後接乙個任意字元,然後是p。

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

匹配乙個指定範圍內的字元,如'[gg]rep'匹配grep和grep。

[^] 匹配乙個不在指定範圍內的字元,如:'[^a-fh-z]rep'匹配不包含a-f和h-z字母開頭,緊跟rep的行。

(..)標記匹配字元,如'(love)',love被標記為1。

< 錨定單詞的開始,如:'

> 錨定單詞的結束,如'grep>'匹配包含以grep結尾的單詞的行。

x 重複字元x,m次,如:'0'匹配包含5個o的行。

x 重複字元x,至少m次,如:'o'匹配至少有5個o的行。

x 重複字元x,至少m次,不多於n次,如:'o'匹配5--10個o的行。

w 匹配

linux中使用grep命令詳解

linux grep命令 linux grep命令用於查詢檔案裡符合條件的字串 也可以用於查詢內容包含指定的範本樣式的檔案。它能使用正規表示式搜尋,用於在檔案中搜尋指定的字串模式,列出含有匹配模式子符串的檔名,並輸出含有該字串的文字行。grep的工作方式是這樣的 它在乙個或多個檔案中搜尋字串模板。如...

grep命令詳解

grep命令是linux下的行過濾工具,其引數繁多,下面就一一介紹個個引數的作用,希望對大家有所幫助。grep print lines matching a pattern 將符合樣式的該行列出 語法 grep options pattern file.grep用以在file內文中比對相對應的部分,...

grep引數詳解

f 檔案選項。讓grep egrep和fgrep命令列中該選項之後的字串是相關檔案的檔名。該檔案包含了將 在輸入中搜尋的目標。標準的grep不能識別該選項 v 反義選項,使grep選擇所有和模式不匹配的行。c 計數選項。請求包含匹配的搜尋檔案中匹配行的數量。l 列表選項。顯示包含有匹配的檔名的列表,...