Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52604
  • 博文数量: 22
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-22 16:48
文章分类
文章存档

2009年(2)

2008年(20)

我的朋友

分类: LINUX

2008-11-11 22:26:13

grep的正刚表达式中可以作为特殊字符的有\ ^ $ . [ ] & 另外加上 \( \) \{ \} [: :]

    ^字符有两个特殊的含义,作为[]内的第一个字符时,意味着取反(NOT),如果出现在第一个位置之后的任何地方,就失去特殊字符的意义了,如果在[]外使用^意味着“在一行的开始处查找其后指定的字符”,如果需要搜索^字符得用转义字符,即:\^
    类似的,$意味着“在行的结尾查找前面的字符串”,如果在[]中使用或和以\$形式使用时将失去特殊含义

例如:

grep "^$" main.cc

在main.cc中查找空行

    通配符,和DOS和shell下不同,这里的通配符有 . * ,*号表示对前边的字符匹配任何次数,如:"X*"表示匹配"X","XX","XXX",……,但不匹配"XY","XZ",……等不匹配X的字符串,.号匹配任何单个字符,如"X*",匹配"XY","XZ",……等X后跟任何单个字符,结合起来用".*"就表示DOS和Shell下的*匹配任何字符串,包括空串,"..*"表示匹配任何非空串
    ^$.*这四个字符只有在[]外并且没有\前缀时才有特殊意义,.$在[]任何地都作为普通字符,^*只有在第一个位置时才有特殊意义,且有相同意义,例如:i[^b]m和i[*b]m匹配除ibm外任何字符串

    在[]搜索ascii字符范围内的一个匹配字符,为省事可以使用短横线(减号)“-”形成范围搜索,例如:
[a-z] 匹配任何小写字符
[a-A] 非法,因为在ascii值中,a在A之后
[9-<] 合法
-号在[后的所有普通字符前时无特殊意义,作为[]中的最后一个字符时也无特殊意义,其它位置只能用作为范围符号,即使用\转义也不行

书上还说?号在[]内时有特殊意义,不过只是提了一下
阅读(1061) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-14 15:11:48

每天都要坚持啊

chinaunix网友2008-11-14 15:11:12

加油啊,相信你们一定能行的