egrep 命令是 grep 命令系列中功能最强大的一个,不仅支持多模式查询,而且也支持正则表达式的模式匹配。
egrep 命令来自于英文词组“extended Global Regular Expression Print”的缩写,其功能是用于在文件内查找指定的字符串。egrep 命令的执行效果与 grep -E 相似,使用参数也可以直接参考 grep 命令,不同点在于改良了 grep 命令原有的一些字符串处理功能,支持了更多正则表达式规则。
egrep [参数] [字符串或正则表达式] [文件名...]
扩展的正则表达式符号:
+ 前面字符的 1 次或多次重复
? 前面字符的 0 次或 1 次重复
a|b 匹配 a 或 b
() 括号中的正则表达式作为一个分组
-i 忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名
-n 显示行号
-h 不显示文件名
-s 不显示错误信息
-v 内容反选
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果
-b 打印匹配行距文件头部的偏移量
(1)使用 egrep 命令实现多个字符串匹配,搜索当前目录下 demo 文件中关于“Tom”或“Smith”的问候信息。命令如下:
[hxstrive@localhost ~]$ cat demo Hello Tom, how are you? Hello Kerry, how are you? Good morning Mr. Smith. [hxstrive@localhost ~]$ egrep "Tom|Smith" demo Hello Tom, how are you? Good morning Mr. Smith.
(2)使用 egrep 命令搜索当前目录下 demo 文件中包含“hello”(忽略大小写)字符串的行,命令如下:
[hxstrive@localhost ~]$ egrep -i "hello" demo Hello Tom, how are you? Hello Kerry, how are you?
(3)使用 egrep 命令搜索当前目录下 demo 文件中包含“hello”(忽略大小写,并且显示行号)字符串的行,命令如下:
[hxstrive@localhost ~]$ egrep -in "hello" demo 1:Hello Tom, how are you? 2:Hello Kerry, how are you?
更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息