您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么使用Grep命令查找多個字符串”,在日常操作中,相信很多人在怎么使用Grep命令查找多個字符串問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Grep命令查找多個字符串”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
多模式 Grep 命令
grep 命令支持三種正則表達式語法:Basic、Extended 和 Perl-compatible 。當沒有指定正則表達式類型時,grep 命令將搜索模式默認為基本正則表達式。
要搜索多個匹配模式,可以使用 OR ( alternation ) 運算符。我們可以用 OR 運算符 |( pipe )指定不同的匹配項,這些匹配項可以是文本字符串,也可以是表達式集。值得注意的是,在所有正則表達式運算符中,這個運算符的優先級是最低的。
使用 grep 命令基本正則表達式搜索多個匹配模式的語法如下:
$ grep 'pattern1\|pattern2' filename
這里需要注意的是,始終要用單引號將正則表達式括起來,因為單引號內的內容原樣輸出,被單引號括起的內容不管是常量還是變量不會發生替換。
使用基本正則表達式時,元字符被解釋為字面字符。要保留元字符的特殊含義,必須用反斜杠( \ )對它們進行轉義。這就是為什么我們要轉義 OR 運算符(|)。
要將模式解釋為擴展正則表達式,請調用 grep -E(或 --extended-regexp )選項。使用擴展正則表達式時,不需要對 OR 運算符 (|) 進行轉義:
$ grep -E 'pattern1|pattern2' file
Grep命令搜索多個字符串
通常我們認為,文字字符串是最基本的模式。
接下來我們將示例,搜索某用戶日志錯誤文件中出現的所有 fatal、error 和 critical 字符串。語法如下:
$ grep 'fatal\|error\|critical' /var/log/nginx/error.log
還需要注意的是,如果要搜索的字符串包含空格,需要用雙引號將其括起來。
下面是使用擴展正則表達式的同一個示例,它不需要轉義字符:
$ grep -E 'fatal|error|critical' /var/log/nginx/error.log
默認情況下,grep 命令是區分大小寫的。要在搜索時忽略大小寫,請調用 grep 加 -i (或 --ignore-case )選項,示例如下:
$ grep -i 'fatal|error|critical' /var/log/nginx/error.log
當你只想搜索某個單詞時,比如你想搜索的是單詞 error ,grep 命令會輸出所有包含 error 字符串的行,即它除了會輸出包含 error 單詞的行,還會輸出包含 errorless 或 antiterrorists 等非 error 單詞的行,這樣是極不方便的。
因此要僅返回指定字符串是整詞的行,或者是由非單詞字符括起來的行,可以使用 grep 加 -w (或 --word-regexp )選項:
$ grep -w 'fatal|error|critical' /var/log/nginx/error.log
值得注意的是,單詞字符包括有字母、數字字符(比如 a-z、a-Z 和 0-9 )以及下劃線( _ ),所有其他字符都被視為非單詞字符。
到此,關于“怎么使用Grep命令查找多個字符串”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。