Chinaunix首页 | 论坛 | 博客
  • 博客访问: 202597
  • 博文数量: 37
  • 博客积分: 4624
  • 博客等级: 上校
  • 技术积分: 433
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-10 14:06
文章分类

全部博文(37)

文章存档

2012年(6)

2011年(25)

2008年(6)

我的朋友

分类: LINUX

2011-12-20 11:21:58

基本元字符集及其含义:

^

只匹配行首

$

只匹配行尾

*

一个单字符后紧跟*,匹配0个或多个此单字符

[]

匹配[]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围

\

用来屏蔽一个元字符的特殊含义,\可以使其失去应有意义

.

匹配任意单字符

pattern\{n\}

用来匹配前面pattern出现次数。n为次数

pattern\{n,\}

含义同上,但次数最少为n

pattern\{n,m\}

含义同上,但pattern出现次数在nm之间

 

1.1.   使用句点匹配单字符

句点.可以匹配任意单字符。

例如:

...x..x..x

ls -l命令中,此格式匹配用户本身,用户组及其他组成员的执行权限。

 

1.2.   在行首以^匹配字符串或字符序列

^只允许在一行的开始匹配字符或单词。

例如:

^d

使用ls -l命令,并匹配目录。

 

例如:

^comp..ing

行首前4个字符为comp,后面紧跟两个任意字符,并以ing结尾。

 

1.3.   在行尾以$匹配字符串或字符

可以说$^正相反,它在行尾匹配字符串或字符, $符号放在匹配单词后。

例如:

trouble$

匹配以单词trouble结尾的所有行。

 

例如:

^ $

匹配所有空行。

 

例如:

^.$

包含一个字符的行。

 

1.4.   使用*匹配字符串中的单字符或其重复序列

使用此特殊字符匹配任意字符或字符串的重复多次表达式。

 

例如:

compu*t

将匹配字符u一次或多次:

computer

computing

compuuuute

 

例如:

10133*

匹配

10133aaa

101333aaa

10133333aaa

 

1.5.   使用\屏蔽一个特殊字符的含义

有时需要查找一些字符或字符串,而它们包含了系统指定为特殊字符的一个字符。

什么是特殊字符?一般意义上讲,下列字符可以认为是特殊字符:

$.'"*[]^|()\+?

 

例如:

\.

假定要匹配包含字符.的各行,需要屏蔽其含义。

 

例如:

\*\.pas

匹配以*.pas结尾的所有文件。

 

1.6.   使用[]匹配一个范围或集合

使用[]匹配特定字符串或字符串集,可以用逗号将括弧内要匹配的不同字符串分开,但并不强制要求这样做。

使用-表示一个字符串范围。

 

例如:

[0123456789] 匹配一个数字

[0-9]  匹配一个数字

[a-z]  匹配一个小写字母

[A-Za-z]  匹配一个字母

[A-Za-z0-9]  匹配一个数字或数字

s[a-zA-Z]t  s开头,中间有一任意字母,以t结尾

[ou].*t  匹配以字母ou开头,后跟任意一个字符任意次,并以t结尾的任意字母

[A-Za-z]*  匹配所有单词

 

例如:

[^a-zA-Z]  匹配任一非字母型字符

[^0-9]  匹配任一非数字型字符

注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。

 

1.7.   使用\{\}匹配模式结果出现的次数

使用*可匹配所有匹配结果任意次,但如果只要指定次数,就应使用\{\},此模式有三种形式:

pattern\{n\} 匹配模式出现n次。

pattern\{n,\} 匹配模式出现最少n次。

pattern\{n,m} 匹配模式出现nm次之间,n,m0-255中任意整数。

 

例如:

A\{2\}B  匹配字母A出现两次,并以B结尾

A\{4,\}B  匹配A至少4次,并以B结尾

A\{2,4\}B  匹配A 2-4次,并以B结尾

 

例如:

[0-9]\{4\}XX[0-9]\{4\}

具体含义如下:

1匹配数字出现4次。

2后跟代码XX

3最后是数字出现4次。

阅读(1400) | 评论(0) | 转发(0) |
0

上一篇:命令执行顺序

下一篇:grep家族

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