码迷,mamicode.com
首页 > 其他好文 > 详细

grep

时间:2016-08-11 22:54:53      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   单词   字母   

1、grep

grep是g一种查找过滤工具,grep支持正则表达式


2、正则表达式

规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示 一个模式,这就是正则表达式。


形式:‘ 表达式内容 ‘


1)字符类

. 匹配任意字符的一次出现


[] 匹配括号中的任意字符的一次出现


- 在[]内表示字符范围


^ 例如:[^xy] 匹配除括号内字符之外的任意字符的一次出现


[[:digit:]] 匹配一个数字 [[:alpha:]] 匹配一个字母


2)数量限定符

? 紧跟在它前面的单元匹配零次或一次


+ 紧跟在它前面的单元匹配一次或多次


* 紧跟在它前面的单元匹配零次或多次


{N} 紧跟在它前面的单元匹配N次


{N,} 紧跟在它前面的单元匹配至少N次


{N,M} 紧跟在它前面的单元匹配至少N次,最多M次


3)位置限定符

^ 匹配行首的位置


$ 匹配行尾的位置


\< 匹配单词开头的位置


\> 匹配单词结尾的位置


\b 匹配单词开头或结尾的位置


\B 匹配不是单词开头或结尾的位置


4)特殊字符

\ ? + {} | ()

这些字符在扩展正则和基准正则有不同的含义,在基准正则中代表普通字符,想要使用其特殊含义需要转义字符转义;在扩展正则中代表特殊含义字符,想要使用其普通含义需要转义字符转义。


例如:匹配合法的手机号码

技术分享

解析命令

技术分享


3、grep选项

--colour 高亮显示


-l 查询多文件时只输出包含匹配字符的文件名


-L 打印不匹配模板的文件清单


-n 显示匹配行及行号


-s 不显示不存在或无匹配文本的错误信息


-? 同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行


-c 只打印匹配的行数,不显示匹配的内容


-h 当搜索多个文件时,不显示匹配文件名前缀


-i 忽略大小写差别


-o 只显示正则表达式匹配的部分


-q 取消显示,只返回退出状态。0则表示找到了匹配的行


-v 反检索,只显示不匹配的行


-w  如果被\<和\>引用,就把表达式做为一个单词搜索


-R, -r, 递归的读取目录下的所有文件,包括子目录。 比如grep -R ‘pattern‘ test会在 test 及其子目录下的所有文件中,匹配 pattern


-V 显示软件版本信息


4、grep与egrep

egrep命令等同于grep -E,利用此命令可以使用扩展的正则表达式对文本进行搜索,并把符合用户需求的字符串打印出来。


5、grep与fgrep

fgrep命令等同于grep -F,它利用固定的字符串来对文本进行搜索,但不支持正则表达式的引用,所以此命令的执行速度也最快。


本文出自 “LOVEMERIGHT” 博客,请务必保留此出处http://lovemeright.blog.51cto.com/10808587/1837070

grep

标签:正则表达式   单词   字母   

原文地址:http://lovemeright.blog.51cto.com/10808587/1837070

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!