多個字串和模式使用grep
導讀 | grep是一個功能強大的 行工具,可讓您在一個或多個輸入檔案中搜尋與正規表示式匹配的行,並將每個匹配的行寫入標準輸出。 |
在本文中,我們將向您展示如何使用GNU grep搜尋多個字串或模式。
GNU grep支援三種正規表示式語法,Basic,Extended和Perl相容。 如果未指定任何正規表示式型別,則grep會將搜尋模式解釋為基本正規表示式。
要搜尋多個模式,請使用OR(交替)運算子。
交替運算子 |(豎線)允許您指定不同的可能匹配項,這些匹配項可以是文字字串或表示式集。 在所有正規表示式運算子中,此運算子的優先順序最低。
使用grep基本正規表示式搜尋多個模式的語法如下:
grep 'pattern1\|pattern2' file...
例項:
[linuxidc@linux:~/]$ grep 'MainWindow\|QComboBox' linuxidc.py
使用基本正規表示式時,元字元將解釋為文字字元。 為了保留元字元的特殊含義,必須使用反斜槓(\)對其進行轉義。 這就是為什麼我們用斜槓轉義OR運算子(|)的原因。
要將模式解釋為擴充套件的正規表示式,請呼叫grep -E(或--extended-regexp)選項。 使用擴充套件的正規表示式時,不要轉義|運算子:
$grep -E 'pattern1|pattern2' file...
[linuxidc@linux:~/]$ grep -E 'MainWindow|QComboBox' linuxidc.py
文字字串是最基本的模式。
在以下示例中,我們正在Nginx日誌錯誤檔案中搜尋所有出現致命,錯誤和嚴重的單詞:
$grep 'fatal\|error\|critical' /var/log/nginx/error.log
如果要搜尋的字串包含空格,請用雙引號將其引起來。
這是使用擴充套件正規表示式的相同示例,它消除了對運算子|進行轉義的需要。
$grep -E 'fatal|error|critical' /var/log/nginx/error.log
預設情況下,grep區分大小寫。 這意味著將大寫和小寫字元視為不同的字元。
要在搜尋時忽略大小寫,請使用-i選項呼叫grep(或 --ignore-case):
$grep -i 'fatal\|error\|critical' /var/log/nginx/error.log
搜尋字串時,grep將顯示該字串嵌入較大字串中的所有行。 因此,如果您要搜尋“錯誤”,則grep還將在較大的單詞(例如“ errorless”或“ antiterrorists”)中嵌入“ error”的行。
要僅返回指定字串是整個單詞(用非單詞字元括起來)的那些行,請使用-w(或--word-regexp)選項:
$grep -w 'fatal\|error\|critical' /var/log/nginx/error.log
文字字元包括字母數字字元(a-z,A-Z和0-9)和下劃線(_)。 所有其他字元均視為非單詞字元。
我們已經向您展示瞭如何grep搜尋多個模式,字串和單詞。
如果您有任何問題或反饋,請隨時發表評論。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2892943/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用grep搜尋多個字串字串
- grep 命令系列:使用 grep 命令來搜尋多個單詞
- grep sed 大批次替換字串字串
- 如何使用 Linux 的 grep 和 fgrep 命令Linux
- grep 的使用場景
- Linux grep命令的使用Linux
- [20220121]windows使用grep注意.txtWindows
- linux下的find 和 grepLinux
- 如何用python判斷列表中是否包含多個字串中的一個或多個?Python字串
- Linux (三劍客之一) grep字串搜尋命令詳解Linux字串
- Linux系統中grep如何使用?Linux
- Windows 系統下使用grep 命令Windows
- 如何使用grep命令的排除功能
- vim 的 grep 外掛`Leaderf rg`:grep 和模糊匹配的完美結合
- 【Shiro】5.多個Realm的使用和實現
- 290.單詞模式。給定一種 pattern(模式) 和一個字串 str ,判斷 str 是否遵循相同的模式。(c++方法)模式字串C++
- 掌握Linux中的12個grep命令Linux
- JavaScript將字串中的多個空格縮減為一個空格JavaScript字串
- Linux grep命令有何作用?如何使用?Linux
- Linux三劍客grep、awk和sedLinux
- 5.4.3 使用多個列表
- 字串匹配模式問題字串匹配模式
- js replace替換字串,同時替換多個方法JS字串
- 如何使用Kubernetes Cluster API和ArgoCD建立和管理多個Kubernetes叢集 - PiotrAPIGo
- linux三劍客(grep、sed、awk)基本使用Linux
- 分享Linux Grep高階使用者指南Linux
- Linux 三劍客之 grep 使用詳解Linux
- grep 匹配製表符 和 換行符
- grep精確匹配搜尋某個單詞的用法 (附: grep高效用法小結))
- 使用 sed 命令查詢和替換檔案中的字串的 16 個示例字串
- grep 、awk
- nginx + 一個埠 部署多個單頁應用(history模式)Nginx模式
- KMP字串模式匹配詳解KMP字串模式
- 寫一個方法把物件和字串互轉物件字串
- Java設計模式-責任鏈模式,應用介面多個引數驗證,訂單多個費用的計算Java設計模式
- 如何從字串文字中拆解出多個數值並計算字串
- 使用 Docker Compose 管理多個容器Docker
- 2022-07-21:給定一個字串str,和一個正數k, 你可以隨意的劃分str成多個子串字串