grep(globally search a regular expression and print)以正規表示法進行全域查詢並列印,grep是乙個最初用於unix作業系統的命令列工具,在給出檔案列表或標準輸出後,grep會對匹配乙個或多個正規表示式的文字進行搜尋,並只輸出匹配(或不匹配)的行或文字。
一、查詢規則
grep命令的語法為:
grep查詢的主要option可選項功能描述如下:grep
[option(s)]
pattern
[file(s)]
option
功能描述
-a 顯示匹配規則的行,並顯示該行後的x行
-b 顯示匹配規則的行,並顯示該行前的x行
-c統計符合規則的行數
-c 顯示匹配規則的行,並顯示該行前後的x行,等同於 -x
-e patternlist
指定乙個或多個搜尋模式
-e將每個規則當作擴充套件的正規表示式(ere),ere空值可匹配所有行
-f將指定的模式視作字串而不是正規表示式
-f指定規則檔案,查詢匹配規則檔案中定義規則的行
-h不展示符合規則行所在的檔名
-h展示符合規則行所在的檔名
-i比較時,大小寫不敏感
-l展示匹配規則的行所在的檔名
-l展示不匹配規則的檔案的檔名
-n展示匹配規則的行編號
-q禁止輸出到標準輸出
-r/-r
在當前目錄及子目錄下查詢,等同於 -d recurse
-s禁止輸出錯誤資訊
-v展示與指定規則不匹配的行
-w展示按單詞匹配的行
-x展示精確匹配規則的行
-o展示精確匹配規則的部分
二、正規表示式
grep pattern部分的正規表示式基本元素:
元素功能描述範例^
錨定行首
『^test』|錨
定行尾|
′tes
t 』
.匹配乙個非換行字元
『te.t』
*匹配零個多個字元
『*test』
\<
匹配行首
『\\>
匹配行尾
『test\>』
x\連續重複字元』x』 m次
『te\st』
x\連續重複字元』x』至少m次
『te\st』
x\連續重複字元』x』至少m次,至多n次
『te\st』
\w匹配乙個文字或字元
『test\w*』 (零個或多個文字或字元)
\w匹配乙個非單詞字元
『test\w』
\b單詞鎖定功能
『\btest\b』
匹配乙個字元
t[ee]st
[-]匹配乙個指定範圍的字元
[a-za-z]
[^]不匹配乙個範圍的字元
[^0-9]
\d匹配乙個數字字元
『\d』 (相當於』[0-9]』)
\d匹配乙個非數字字元
『\d』 (相當於』[^0-9]』)
\w匹配乙個單詞字元
『\w』 (相當於』[a-za-z0-9]』)
\w匹配乙個非單詞字元
『\w』 (相當於』[^a-za-z0-9]』)
\s匹配乙個空白字元,如空格、製表、換行等
『\s』 (相當於』[\f\n\r\t\v]』)
\s匹配乙個非空白字元
『\s』 (相當於』[^\f\n\r\t\v]』)
\b匹配乙個單詞邊界
『\b』
\b匹配乙個非單詞邊界
『\b』
三、使用範例
3.1 option應用
grep -e
'pattern1'
-e'pattern2' test.txt
grep -v '^test' test.txt
grep -v 'pattern1' test.txt | grep -v 'pattern2'
grep --color=auto 'pattern' test.txt
注:可在~/.bash_profile中新增alias grep=』grep –color=auto』
grep -r 'pattern' *
grep -c 'pattern' test.txt
grep -n '^$' test.txt
grep -x '[0-9][0-9]*' test.txt
grep -f patternfile test.txt
3.2 正則應用grep
'^[a-z]' test.txt
四、egrep、fgrepgrep
'^[^a-za-z]' test.txt
grep -e 'pattern1|pattern2' test.txt
或grep
'pattern1\|pattern2' test.txt
或egrep 'pattern1|pattern2' test.txt
grep -e '0+' test.txt
或grep
'0\+' test.txt
或egrep '0+' test.txt
grep -e '(no)+' test.txt
或grep
'(no)\+' test.txt
或egrep '(no)+' test.txt
注:fgrep職能查詢固定文字,速度比grep快grep -e
'no?' test.txt
或egrep 'no?' test.txt
grep命令梳理
一 grep的工作原理 grep命令在乙個或多個檔案中查詢某個字元模式,如果這個模式中包含空格,就必須用引號把它括起來。grep命令中,模式可以是乙個被引號括起來的字串,也可以是單個詞。位於模式之後的所有單詞都被視為檔名。grep將輸出傳送到螢幕,它不會對輸入檔案進行任何修改或變化。grep返回的退...
linux命令 find使用梳理
linux find命令是所有linux命令中最有用的乙個,它允許按名稱 型別 使用者 許可權 時間等實時查詢檔案,還能對查詢到的檔案執行檢視 刪除 移動等操作。一 find官方手冊 使用man find檢視linux find命令的使用方法如下 name find walk a file hier...
Linux下grep命令的使用!
grep 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep的行。一起用代表任意字元。匹配...