grep、egrep和fgrep命令--Linux文件內容查詢命令

1.命令功能:

       grep命令用來在文本文件中查找指定模式的詞或短語,並在標準輸出上顯示包括給定字符串模式的所有行;

       egrep命令等同於grep -E,可以使用擴展的字符串模式進行搜索;

       fgrep命令等同於grep -F,是快速搜索命令,它檢索固定字符串,但不識別正則表達式。

2.一般格式:

  grep [選項] [查找模式] [文件名1,文件名2,……]

     fgrep [選項] [查找模式] [文件名1,文件名2,……]

        egrep [選項] [查找模式] [文件名1,文件名2,……]

3.常用選項:

  - E 每個模式作爲一個擴展的正則表達式對待。

  - F 每個模式作爲一組固定字符串對待(以新行分隔),而不作爲正則表達式。

  - b在輸出的每一行前顯示包含匹配字符串的行在文件中的字節偏移量。

  - c 只顯示匹配行的數量。

  - i 比較時不區分大小寫。

  - h 在查找多個文件時,指示grep不要將文件名加入到輸出之前。

  - l 顯示首次匹配串所在的文件名並用換行符將其隔開。當在某文件中多次出現匹配串時,不重複顯示此文件名。

  - n 在輸出前加上匹配串所在行的行號(文件首行行號爲1)。

  - v 只顯示不包含匹配串的行。

  - x 只顯示整行嚴格匹配的行。

  - e expression 指定檢索使用的模式。用於防止以“-”開頭的模式被解釋爲命令選項。

  - f expfile 從expfile文件中獲取要搜索的模式,一個模式佔一行

 4.注意以下方面:

  在命令後鍵入搜索的模式,再鍵入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用單引號把要搜索的模式括起來,用來表明搜索的模式是由包含空格的字符串組成。否則,Shell將把空格認爲是命令行參數的定界符,而grep命令將把搜索模式中的單詞解釋爲文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。

  $ grep ’text file’ example

  用戶可以在命令行上用Shell特殊字符來生成將要搜索的文件名列表。在下面的例子中,特殊字符“*”用來生成一個文件名列表,該列表包含當前目錄下所有的文件。該命令將搜索出當前目錄下所有文件中與模式匹配的行。

  $ grep data *

  特殊字符在搜索一組指定的文件時非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用“*.c”來指定文件名列表。假設用戶的 C程序中包含一些不必要的轉向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索並顯示所有包含goto語句的代碼行:

  $ grep goto *.c

  用戶可以在命令行上鍵入搜索模式,也可以使用-f選項從指定文件中讀取要搜索的模式。在文件中,每個搜索模式佔一行。如果經常要搜索一組常見字符串時,這個功能非常有用。在下面的例子中,用戶要在文件exam中搜索字符串“editor”和“create”,就把要搜索的模式放置在文件mypats中,然後,grep命令從文件mypats中讀取要搜索的模式

  $ cat mypats

  editor

  create

  $ grep -f mypats exam

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