linux grep命令的使用

2021-06-15 20:51:45 字數 1475 閱讀 6551

用『grep』搜尋文字檔案

如果您要在幾個文字檔案中查詢一字串,可以使用『grep』命令。『grep』在文字中搜尋指定的字串。

假設您正在『/usr/src/linux/documentation』目錄下搜尋帶字串『magic』的檔案:

$ grep magic /usr/src/linux/documentation/*

sysrq.txt:* how do i enable the magic sysrq key?

sysrq.txt:* how do i use the magic sysrq key?

其中檔案『sysrp.txt』包含該字串,討論的是 sysrq 的功能。

預設情況下,『grep』只搜尋當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:

grep: sound: is a directory

明確要求搜尋子目錄:grep -r

或忽略子目錄:grep -d skip

當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:

$ grep magic /usr/src/linux/documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供乙個檔案過濾方式(搜尋全部檔案的話用 *)。如果您忘了,『grep』會一直等著,直到該程式被中斷。如果您遇到了這樣的情況,按 ,然後再試。

下面是一些有意思的命令列引數:

grep -i pattern files :不區分大小寫地搜尋。預設情況區分大小寫,

grep -l pattern files :只列出匹配的檔名,

grep -l pattern files :列出不匹配的檔名,

grep -w pattern files :只匹配整個單詞,而不是字串的一部分(如匹配『magic』,而不是『magical』),

grep -c number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

這裡還有些用於搜尋的特殊符號:

/< 和 /> 分別標註單詞的開始與結尾。

例如:

grep man * 會匹配 『batman』、『manic』、『man』等,

grep '/' 只匹配『man』,而不是『batman』或『manic』等其他的字串。

'^':指匹配的字串在行首,

'$':指匹配的字串在行尾,

如果您不習慣命令列引數,可以試試圖形介面的『grep』,如 rexgrep 。這個軟體提供 and、or、not 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。 

linux grep命令的使用

用 grep 搜尋文字檔案 如果您要在幾個文字檔案中查詢一字串,可以使用 grep 命令。grep 在文字中搜尋指定的字串。假設您正在 usr src linux documentation 目錄下搜尋帶字串 magic 的檔案 grep magic usr src linux documentat...

Linux grep命令使用大全

grep是一種使用正規表示式的多用途文字搜尋工具 global search regular expression re and print out the line 主要引數 c 僅僅輸出匹配行的計數。i 不區分大 小寫 僅僅適用於單字元 h 查詢多檔案時不顯示檔名稱。l 查詢多檔案時僅僅輸出包括...

Linux grep命令使用大全

grep是一種使用正規表示式的多用途文字搜尋工具 global search regular expression re and print out the line 主要引數 c 僅僅輸出匹配行的計數。i 不區分大 小寫 僅僅適用於單字元 h 查詢多檔案時不顯示檔名稱。l 查詢多檔案時僅僅輸出包括...