1. 程式人生 > 其它 >Linux grep 匹配多個關鍵字

Linux grep 匹配多個關鍵字

  Linux grep 命令非常常用,經常用於匹配文字字元。基本語法如下:

grep 'keyword'fileName.txt

  如上所示,Linux grep 命令用於查詢檔案裡符合指定條件的字串,如果發現某檔案的內容符合所指定的範本樣式,則grep 指令會把含有範本樣式的那一行顯示出來。grep 命令支援三種正則表示式語法:Basic、Extended 和 Perl-compatible 。當沒有指定正則表示式型別時,grep 命令將搜尋模式預設為基本正則表示式。

  《Linux grep查詢關鍵詞首次或者最近一次出現的地方》介紹瞭如何取出檔案中關鍵詞keyword首次或者最近出現的記錄。但是,一般情況下,grep 命令只能匹配一個關鍵字,怎麼實現匹配多個關鍵字呢?

grep ‘keyword’

  先介紹最普通的使用方式,用於匹配檔案中包含一個 keyword 的記錄:

grep 'keyword' fileName.txt

  即匹配fileName.txt 中包含關鍵詞keyword的記錄。下面開始分析怎麼實現匹配多個關鍵字。

grep -E 匹配任意一個關鍵字–或關係

grep -E "keyword1|keyword2|keyword3" fileName.txt

  匹配 fileName.txt 中包含 keyword1、keyword2 或 keyword3 任意一個關鍵詞的記錄,只要滿足其中任意條件就會被匹配。-E 或 --extended-regexp

: 以extended語法的正則表示式查詢關鍵詞。-E是核心,千萬不要省略。

同時匹配多個關鍵字–與關係

  使用管道符連線多個 grep ,實現多個關鍵字的與關係檢索:

grep keyword1 file.txt | grep keyword2 |grep keyword3

必須同時滿足三個條件(keyword1、keyword2和keyword3)才匹配。

夯實基礎

  場景描述: 系統報警顯示了時間,但是日誌檔案太大無法直接 cat 檢視。(查詢含有特定文字的檔案,並拿到這些文字所在的行)

  解決辦法

grep --color=auto '2022-12-03 15:32:11' fileName.log | head -3

  檢視符合條件的日誌記錄,高亮展示關鍵詞,只打印前三次出現的記錄。

Reference