在一個文件中同時查找多個字符串:正則表達式
並集語法:spa
grep -e 'pattern1 -e 'pattern2 file日誌
或集語法:code
一、grep -E 'pattern1|pattern2' file
二、egrep 'pattern1|pattern2' file
三、grep 'pattern1|pattern2' fileserver
egrep 等同於 grep -E 。它會以擴展的正則表達式的模式來解釋模式。下面來自 grep 的幫助頁:
基本的正則表達式元字符 ?、+、 {、 |、 ( 和 ) 已經失去了它們原來的意義,要使用的話用反斜線的版本 /?、/+、/{、/|、/( 和 /) 來代替。 傳統的 egrep 並不支持 { 元字符,一些 egrep 的實現是以 /{ 替代的,因此一個可移植的腳本應該避免在 grep -E 使用 { 符號,要匹配字面的 { 應該使用 [}]。
GNU grep -E 試圖支持傳統的用法,若是 { 出在在無效的間隔規範字符串這前,它就會假定 { 不是特殊字符。
例如,grep -E ‘{1′ 命令搜索包含 {1 兩個字符的串,而不會報出正則表達式語法錯誤。
POSIX.2 標準容許這種操做的擴展,但在可移植腳本文件裏應該避免這樣使用。blog
在多個文件中同時查找一個或多個字符串:遞歸
語法:字符串
grep 'pattern*' file1 file2string
例子:
檢索日誌文件中的cms及"moduleId":6000關鍵詞it
##實時查看
$ tail -f /export/Logs/Domains/m.jd.id/server1/logs/catalina.out|grep --color -E 'cms|"moduleId":6000'
##查看全部歷史
$ grep --color -E 'cms|"moduleId":6000'/export/Logs/Domains/m.jd.id/server1/logs/catalina.out
徹底匹配關鍵詞
$ grep -w 'cms\|campaign\' /export/Logs/Domains/m.jd.id/server1/logs/catalina.out
使用egrep命令,使用擴展的正則表達式
$ egrep -w 'cms|campaign'/export/Logs/Domains/m.jd.id/server1/logs/catalina.out
使用grep的-e參數關鍵詞
$ grep -e 'cms|campaign' /export/Logs/Domains/m.jd.id/server1/logs/catalina.out
使用-i參數忽略大小寫,–color高亮顯示匹配結果
$ egrep -wi --color 'cms|campaign' /export/Logs/Domains/m.jd.id/server1/logs/catalina.out
示例輸出
使用-i參數忽略大小寫,–color高亮顯示匹配結果
$ egrep -wi --color 'cms|campaign'/export/Logs/Domains/m.jd.id/server1/logs/*.out
示例輸出
遞歸查找
# egrep -Rwi --color 'foo|bar' /etc/