Linux grep常用命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux grep常用命令相关的知识,希望对你有一定的参考价值。
在一个文件中同时查找多个字符串:
并集语法:
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-------------------------------------------------------------------------
爱生活,爱工作。
以上是关于Linux grep常用命令的主要内容,如果未能解决你的问题,请参考以下文章