Chinaunix首页 | 论坛 | 博客
  • 博客访问: 264641
  • 博文数量: 28
  • 博客积分: 2520
  • 博客等级: 少校
  • 技术积分: 657
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-14 00:02
文章分类

全部博文(28)

文章存档

2010年(3)

2009年(11)

2008年(14)

我的朋友

分类: LINUX

2009-11-23 15:12:51

^表达一行的开始,$表示一行的结束。如:需要找出以 Subject开头的行。可以使用:

^Subject 使用egrep命令,则为:egrep  ‘^Subject’ youfile

[root@unig20 abc]# cat test.txt

Subject:Your subject

From:xuanyuzheng@126.com

To:xuanyuzheng@sina.com

subject:your Subject

 

执行egrep '^Subject' test.txt命令,显示如下:

[root@unig20 abc]# egrep 'Subject' test.txt  

Subject:Your subject

执行egrep 'Subject$' test.txt命令,显示如下:

[root@unig20 abc]# egrep 'Subject$' test.txt

subject:your Subject

其他 ^$表示一个空行。

[]意思是能匹配[]中所有字符的其中一个。如[abc]及可能是a或者是b  

或者是c。如果要想搜索所有以subject开头的行,不区分大小写。我们可以

[root@unig20 abc]# grep '[Ss]ubject' test.txt

Subject:Your subject

subject:your Subject

还可以:

[root@unig20 abc]# egrep '(S|s)ubject' test.txt   

Subject:Your subject

subject:your Subject

还可以:

[root@unig20 abc]# egrep -i  'subject' test.txt     

Subject:Your subject

subject:your Subject

[Ss](S|s)的效果是一样的,但是[]和()还是有区别的。[]只能代表一个字符,()可以

代表很多,如(Sub|sub)意思是可以是Sub也可以是subegrep –i 选项的意思就是不区

分大小写。

 但是如果^出现在[]里面就不是表示行的开始的意思了,而是表示非的意思,如[^abc]

 表示除了a\b\c以外的任意字符。如[^0-9] 则表示不是0,1,2,3,4,5,6,7,8,9的任意字符,-

 在这里是连字符,不过如果-放在[]第一个位置就不是连字符了,就是普通字符-,如[-abc]

就是可能是-或者a或者b或者c。如果不是字母和数字就可以写成[^0-9a-zA-z]

 [root@unig20 abc]# egrep 's[^u]' test.txt

To:xuanyuzheng@sina.com

.(dot)代表任意字符,不过.处于[]中就只是普通字符.的意思。

[root@unig20 abc]# egrep 's.*t' test.txt

Subject:Your subject

subject:your Subject

意思是搜索所有s 后面有若干字符或者没有字符后面有个t的行。

[root@unig20 abc]# egrep '[.]' test.txt    

From:xuanyuzheng@126.com

To:xuanyuzheng@sina.com

搜索所有有普通字符.的行。

?代表它前面的字符项可有可无。

colou?r既可以匹配colour也可以匹配color.

test.txt添加两行:

colour match

color match

 

 [root@unig20 abc]# cat test.txt

Subject:Your subject

From:xuanyuzheng@126.com

To:xuanyuzheng@sina.com

subject:your Subject

colour match

color match

 

[root@unig20 abc]# egrep 'colou?r' test.txt

colour match

color match

阅读(674) | 评论(2) | 转发(0) |
0

上一篇:想到海边游泳

下一篇:Mysql安装

给主人留下些什么吧!~~

xuanyuzheng2009-12-13 14:45:12

^\s*$

dolinux2009-12-05 20:44:34

如果我的空行既有普通的空行也有由空格组成的空行^$就不能全部匹配了。 用下面这个可以匹配到上面两种空行。 ^[ \t]*$