grep命令是文字搜尋命令,它可以正規表示式搜尋文字,也可從乙個檔案中的內容作為搜尋關鍵字。
grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到標準輸出,不影響原檔案內容。
語法:
grep [option] pattern file
引數:用於過濾/搜尋的特定字元。可使用正規表示式能多種命令配合使用,使用上十分靈活。
-a --text #不要忽略二進位制的資料。
-a《顯示行數》 --after-context=《顯示行數》 #除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
-b --byte-offset #在顯示符合樣式的那一行之前,標示出該行第乙個字元的編號。
-b《顯示行數》 --before-context=《顯示行數》 #除了顯示符合樣式的那一行之外,並顯示該行之前的內容。
-c --count #計算符合樣式的列數。
-c《顯示行數》 --context=《顯示行數》或-《顯示行數》 #除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。
-d 《動作》 --directories=《動作》 #當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep指令將回報資訊並停止動作。
-e《範本樣式》 --regexp=《範本樣式》 #指定字串做為查詢檔案內容的樣式。
-e --extended-regexp #將樣式為延伸的普通表示法來使用。
-f《規則檔案》 --file=《規則檔案》 #指定規則檔案,其內容含有乙個或多個規則樣式,讓grep查詢符合規則條件的檔案內容,格式為每行乙個規則樣式。
-f --fixed-regexp #將樣式視為固定字串的列表。
-g --basic-regexp #將樣式視為普通的表示法來使用。
-h --no-filename #在顯示符合樣式的那一行之前,不標示該行所屬的檔名稱。
-h --with-filename #在顯示符合樣式的那一行之前,表示該行所屬的檔名稱。
-i --ignore-case #忽略字元大小寫的差別。
-l --file-with-matches #列出檔案內容符合指定的樣式的檔名稱。
-l --files-without-match #列出檔案內容不符合指定的樣式的檔名稱。
-n --line-number #在顯示符合樣式的那一行之前,標示出該行的列數編號。
-q --quiet或--silent #不顯示任何資訊。
-r --recursive #此引數的效果和指定「-d recurse」引數相同。
-s --no-messages #不顯示錯誤資訊。
-v --revert-match #顯示不包含匹配文字的所有行。
-v --version #顯示版本資訊。
-w --word-regexp #只顯示全字符合的列。
-x --line-regexp #只顯示全列符合的列。
-y #此引數的效果和指定「-i」引數相同。
規則表示式:
^ #錨定行的開始 如:'^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。
\< #錨定單詞的開始,如:'\#錨定單詞的結束,如'grep\>'匹配包含以grep結尾的單詞的行。
x\ #重複字元x,m次,如:'0\'匹配包含5個o的行。
x\ #重複字元x,至少m次,如:'o\'匹配至少有5個o的行。
x\ #重複字元x,至少m次,不多於n次,如:'o\'匹配5--10個o的行。
\w #匹配文字和數字字元,也就是[a-za-z0-9],如:'g\w*p'匹配以g後跟零個或多個文字或數字字元,然後是p。
\w #\w的反置形式,匹配乙個或多個非單詞字元,如點號句號等。
\b #單詞鎖定符,如: '\bgrep\b'只匹配grep。
使用例項:例項1:查詢指定程序
命令:ps -ef | grep svn
輸出:
說明:第一條記錄是查詢出的程序;第二條結果是grep程序本身,並非真正要找的程序。
例項2:查詢指定程序個數
命令:ps -ef|grep -c svn
輸出:
命令:grep -f test file
輸出:
命令:grep -f test -n file
輸出:
命令:grep 快樂程式設計師 file
命令:grep php file file1
輸出:
說明:多檔案時,輸出查詢到的資訊內容行時,會把檔案的命名在行最前面輸出並且加上":"作為標示符
例項7:grep不顯示本身程序
命令:ps -ef | grep svn | grep -v 「grep」
輸出:
例項8:找出以」快樂」開頭的行內容
命令:grep ^快樂 file
輸出:
例項9:找出以非」快樂」開頭的行內容
命令:grep [快樂] file
輸出:
grep可用於shell指令碼,grep通過返回乙個狀態值來說明搜尋的狀態,
結果{0:成功,1:不成功,2:搜尋的檔案不存在}
grep命令詳解
grep命令是linux下的行過濾工具,其引數繁多,下面就一一介紹個個引數的作用,希望對大家有所幫助。grep print lines matching a pattern 將符合樣式的該行列出 語法 grep options pattern file.grep用以在file內文中比對相對應的部分,...
grep命令詳解
一 簡介 grep 是一種強大的 文字搜尋工具 它能使用正規表示式搜尋文字,並把匹配的行列印出來。unix的grep家族包括 grep egrep 和fgrep egrep 和fgrep 的命令只跟grep有很小不同。egrep是grep的擴充套件,支援更多的re元字元,fgrep就是fixed g...
grep 命令詳解
linux grep命令 1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep opt...