前言

grep怎么出来的?

这就需要我们庖丁解牛了,“g/RE/p”看到没,就是这样“global Regular Expression print”==>“全局查找正则表达式(RE)并且打印结果行。”

grep家族由命令grep,egrep和fgrep组成。后两者是前者的变体。一个胖了,一个瘦了而已。

使用grep的好处就在于,不需要启动编辑器就可以执行查找操作,也用不着把pattern放在“//”里,使用grep要比vi快的多,并且还多了许多命令行选项。

格式

grep -option 'pattern' filename 或者

|grep -option 'pattern'

grep的正则表达式元字符

见上文shell之正则表达式:

http://1076546426.blog.51cto.com/9959876/1702784

grep选项

选项
功能-b在每行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到-c显示匹配到的行的数目,而不显示行的内容-h不显示文件名-i匹配字符时忽略大小写-l只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔-n在每一行的前面加上它在文件中的相对行号-s无声操作,即只显示报错信息,以检查退出状态-v反向查找,只显示不匹配的行
-w把表达式作为词来查找,只适用于grep。=====\<\>

注:更多选项请查看:grep -h 或者 man grep

egrep新增元字符

元字符
功能+匹配一个或多个+号以前的字符?匹配1个或0个前导字符a|b匹配a或b()字符组

思路拓展:

示例注解'[a-z]+ove'匹配1个或多个字母后跟ove的字符串'lo?ve'匹配l后跟ove或ve的字符串'love|hate'匹配love和hate这两个字符串之一'love(able|ly)'匹配loveable或lovely