Grep命令:從終端查找文本的強大工具

Grep命令

幾乎所有擁有計算機或與之配合使用的人都會知道鍵盤快捷鍵Ctrl + F來查找文本。 “ F”代表英語中的“查找”,“查找”,並且可以用於例如在網頁上查找文本。 此快捷方式在許多應用程序中也可用,有些程序使用“ B”表示“搜索”,但是這些快捷方式僅在我們位於應用程序內部且打開文件的情況下才有效。 在Linux中,我們有非常強大的工具,可以從終端啟動,如果需要的話 找到我們團隊中的任何文本,我們將使用以下命令 grep的.

grep的 此命令將幫助我們在所指示的文件中查找文本。 它的名稱來自g / re / p,這是一個在Unix / Linux文本編輯器中用於類似功能的命令。 像許多其他命令一樣, grep的 有很多 我們將以字母形式添加的可用選項 並且每個人將執行不同的任務。 通過組合這些選項,我們將能夠在一個或多個文件中執行複雜的搜索。 在這裡,我們向您展示您需要了解的所有內容。

grep的 我們將在任何文件中找到任何文本

首先,我們將解釋可用的選項:

  • - i:不會區分大小寫。
  • - w:強迫它只找到特定的單詞。
  • - v:選擇不匹配的行。
  • - n:顯示帶有要求的單詞的行號。
  • - h:從輸出的Unix文件名中刪除前綴。
  • - r:遞歸搜索目錄。
  • - R:像-r一樣,但遵循所有符號鏈接。
  • - l:僅顯示帶有選定行的文件名。
  • - c-所選行的每個文件僅顯示一個計數。
  • -顏色:以顏色顯示匹配的圖案。

在您標題為本文的圖像中,我在該路徑中的文件“ 830.desktop”中查找了“圖像”一詞。 如您所見,我寫了:

grep Imágenes /home/pablinux/Documentos/830.desktop

請記住,在本文中,我們將編寫必鬚根據搜索首選項進行修改的示例。 當我們說“文件”,“單詞”等時,我們將指代文件及其路徑。 如果我剛剛編寫了“ grep Images 830.desktop”,我將收到一條消息,指出該文件不存在。 除非文件位於根目錄中,否則大約是這樣。

其他示例是:

  • grep -i圖片/home/pablinux/Documentos/830.desktop,其中“圖片”是我們要查找的單詞,其餘的是文件及其路徑。 本示例將在不區分大小寫的文件“ 830.desktop”中搜索“圖像”。
  • grep -R圖片:它將搜索目錄的所有行及其找到“ images”一詞的所有子目錄。
  • grep -c示例test.txt:這會尋找我們,並顯示“示例”出現在名為“ test.txt”的文件中的總次數。

與grep 我們也可以搜索文件

如果要查找文件830.desktop,我們將編寫以下命令:

grep 830.desktop

這將執行 在我們的個人文件夾中搜索“ 830.desktop”文件換句話說,如果該文件位於另一個用戶的個人文件夾中,則將找不到該文件。 這是世界上最普通的事情,因為用戶沒有密碼就沒有權限訪問他人的內容。

如何執行遞歸搜索

grep的 它也允許我們 根據經常性規則或準則進行搜索。 例如,讀取每個目錄中包含單詞“ Pablinux”的所有文件。 為此,我們將編寫:

grep -r Pablinux /home/

好吧:

grep -R Pablinux /home/

我們將在單獨的行上看到“ Pablinux”的結果,並在其開頭找到文件的名稱。 如果我們不想在數據輸出中看到文件名,我們將使用-h選項(“隱藏”;隱藏):

grep -h -R Pablinux /home/

我們可以加入選項,並在不帶引號的情況下寫上“ -hR”。

如何進行精確的單詞搜索

有時有些文件包含我們想要搜索的內容。 例如,這可以用複合詞出現在我們身上,通過搜索“森林”,我們可以找到“遊俠”。 如果我們要 找到一個確切的詞 我們將使用-w選項:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

上面的命令將在指示路徑中的文件“ holidays.txt”中搜索“森林”,而忽略護林員。 如果我們想要搜索兩個不同的單詞,我們將使用以下命令 埃格雷普:

egrep -w bosques|plantas /ruta/del/archivo

知道一個單詞在文件中出現多少次

grep的 它也有能力 計算一個單詞出現多少次 在一個文件中。 為此,我們將使用-c選項:

grep -c prueba /ruta/al/archivo

添加選項-n,我們將看到單詞出現的行號。

反向查詢

我們也可以做相反的事情,即 搜索不包含單詞的行。 為此,我們將使用-v選項,如下所示:

grep -v la ruta/al/archivo

上面的命令將顯示所有不包含單詞“ the”的行。 這可以在文檔或列表中派上用場,在該文檔或列表中,一個單詞會重複多次,並且由於某種原因,我們需要訪問其餘各行。

通過訪問系統信息 grep的

電腦型號

grep的 它不僅能夠在文件內搜索。 也是 能夠查看系統信息。 在上一個屏幕截圖中,我們可以看到它如何向我們展示我們擁有哪種型號的PC(我知道它不是世界上功能最強大的筆記本電腦)。 為此,我們使用了以下命令:

cat /proc/cpuinfo | grep -i 'Model'

好吧:

grep -i 'Model' /proc/cpuinfo

如果要查看磁盤單元的名稱,我們將編寫:

dmesg | egrep '(s|h)d[a-z]'

如何僅列出匹配的文件名

如果我們只想看到一個列表,其中僅包含與搜索匹配的文件名,我們將使用-l選項,如下所示:

grep -l 'main' *.c

如果我們想用彩色看到這個詞,我們會這樣寫:

grep --color palabra /ruta/al/archivo

如您所見,該命令 grep的 是一個 非常強大的工具 這是值得的,尤其是在我們不記得自己在哪裡寫東西或在編程中的情況下。 此外,它還可以幫助我們以終端愛好者喜歡的方式找到有關係統的信息。 這個關於查找文本的命令指南對您有用嗎? grep的?


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   諾德里 他說:

    您好!
    當您說Grep也用於搜索文件時,我認為這是不正確的,因為如果您運行grep EXPRESSION並且不將文件傳遞給它,它將等待來自標準輸入的數據輸入。
    根據手冊頁:
    grep在命名的輸入文件中搜索包含與給定PATTERN匹配的行。 如果未指定文件,或者給出文件“-”,則grep搜索標準輸入。
    這就是為什麼您可以在管道中使用它,例如通過將此命令的輸出作為輸入傳遞給grep來解析/ proc / cpuinfo的輸出的原因,從而可以進行搜索。
    問候

  2.   安娜 他說:

    很好的帖子。
    您可以很好地解釋它,然後直接進行討論。