Linux grep 匹配多個關鍵字
??Linux grep 命令非常常用,經常用于匹配文本字符。基本語法如下:
grep 'keyword'fileName.txt
??如上所示,Linux grep 命令用于查找文件里符合指定條件的字符串,如果發現某文件的內容符合所指定的范本樣式,則grep 指令會把含有范本樣式的那一行顯示出來。grep 命令支持三種正則表達式語法:Basic、Extended 和 Perl-compatible 。當沒有指定正則表達式類型時,grep 命令將搜索模式默認為基本正則表達式。
??《Linux grep查詢關鍵詞首次或者最近一次出現的地方》介紹了如何取出文件中關鍵詞keyword首次或者最近出現的記錄。但是,一般情況下,grep 命令只能匹配一個關鍵字,怎么實現匹配多個關鍵字呢?
??更多關于Linux命令的傳送門——《五分鐘掃盲:25個工作中常用的Linux命令》。
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
Buy me a coffee. ?Get red packets.
浙公網安備 33010602011771號