Linux grep常用命令
阿新 • • 發佈:2018-11-27
在一個檔案中同時查詢多個字串:
並集語法:
grep -e 'pattern1 -e 'pattern2 file
或集語法:
1、grep -E 'pattern1|pattern2' file
2、egrep 'pattern1|pattern2' file
3、grep 'pattern1|pattern2' file
egrep 等同於 grep -E 。它會以擴充套件的正則表示式的模式來解釋模式。下面來自 grep 的幫助頁:
基本的正則表示式元字元 ?、+、 {、 |、 ( 和 ) 已經失去了它們原來的意義,要使用的話用反斜線的版本 /?、/+、/{、/|、/( 和 /) 來代替。 傳統的 egrep 並不支援 { 元字元,一些 egrep 的實現是以 /{ 替代的,所以一個可移植的指令碼應該避免在 grep -E 使用 { 符號,要匹配字面的 { 應該使用 [}]。
GNU grep -E 試圖支援傳統的用法,如果 { 出在在無效的間隔規範字符串這前,它就會假定 { 不是特殊字元。
例如,grep -E ‘{1′ 命令搜尋包含 {1 兩個字元的串,而不會報出正則表示式語法錯誤。
POSIX.2 標準允許這種操作的擴充套件,但在可移植指令碼檔案裡應該避免這樣使用。
在多個檔案中同時查詢一個或多個字串:
語法:
grep 'pattern*' file1 file2
例子:
檢索日誌檔案中的cms及"moduleId":6000關鍵詞
##實時檢視
$ 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/