egrep 搜索文件中的字符串

作用

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 参数获取帮助信息

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号