grep

时间:2014-02-21 14:45:04   收藏:0   阅读:373

     grep是linux使用最广泛的命令之一。grep允许对文本文件进行模式查找。如果找到匹配的模式,grep会打印包含模式在内的所有行,grep可分为3种模式进行讨论,grep的三种变形:


第一部分 基本正则表达式--grep

 1       “ . ”  表示任意单个字符

bubuko.com,布布扣

2  ” * “  表示紧挨其前面字符出现任意次,至少别匹配一次

bubuko.com,布布扣

可以看出b前的至少要有一个a,没有a的就匹配单个b

3.  ”  .*  “ 表示任意字符任意内容(a和b之间任意字符都可以匹配到)

bubuko.com,布布扣

4    ^ 和$表示行首和行尾

bubuko.com,布布扣

bubuko.com,布布扣

5  ^$ 表示空白行(空行,一般可以通过吧空行过滤出来,来除去文件的空行)

6   \?这个和 * 的用途是一样的------

bubuko.com,布布扣

7.  \{m,n\} 表示比配前面字符至少m次,至多n次

bubuko.com,布布扣

当m=0次时,匹配的就没有下限了,可以没有前面的呢个字符

当n=0时,匹配就没有上限,只要有都算在匹配的内容之内

8.  \<\>字符集的锚定,所截取一定是完整的单词

bubuko.com,布布扣

9. 表示分组-----\(patter\)这样的可是,匹配这字符集的内容

bubuko.com,布布扣

[ ] 和[ ^ ] 表示中括号内的内容和非中括号的内容

bubuko.com,布布扣

bubuko.com,布布扣

[:space:]-----表示空白行,这个和^$有很大的区别,^$本能作为一个字符去匹配但是space可以,例如检索/etc/inittab中

bubuko.com,布布扣

[:lower:]-----表示所有小写字母

[:upper:]-----表示所有大写字母

[:digit:]-----表示所有数字

[:punct:]-----表示任意标点符号

[:alnum:]-----表示任意字母(不分大小写)

[:alpha:]------表示任意字母和数字


第二部分  扩展的正则表达式(这里就不举例子了,其实和grep十分相似)

1. +   表示匹配前一个至少一次,和*以及\?用法是一样的

2.  ? 实际上就是\? 去掉了转译符

3.{n,m}  和grep的\{n,m\}是一样的

4. a|b 或匹配这个是可以多选一的

bubuko.com,布布扣

加上了()才表示单个字母的或,不然就会表示成a和baa之间的或关系了

5.\<\>和grep是相同的

6.\(\)分组匹配和grep也是相同的


第三部分  grep --option

--color=auto 表示匹配的部分加上颜色

-v  表示出了匹配内容以外的所有内容(可以用这个去除空行)

-o  表示只显示匹配的内容,多余的不部分不显示

-A+数字#     表示显示匹配的行的下面#行

-B+数字#      表示显示匹配的行的上面#行

-i    表示匹配时不分大小写

-r     表示递归搜索

grep  -E == egrep

本文出自 “linux学习” 博客,请务必保留此出处http://joe51cto.blog.51cto.com/7680547/1361437

原文:http://joe51cto.blog.51cto.com/7680547/1361437

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!