Linux grep常用命令
2018-11-27 19:43 Tanwheey 阅读(2552) 评论(0) 编辑 收藏 举报在一个文件中同时查找多个字符串:
并集语法:
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/
------------------------------------------------------Tanwheey-------------------------------------------------------------------------
爱生活,爱工作。