Linux grep經常使用命令

在一個文件中同時查找多個字符串:正則表達式

並集語法: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/
相關文章
相關標籤/搜索