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
-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
檢視符合條件的日誌記錄,高亮展示關鍵詞,只打印前三次出現的記錄。