Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1003113
  • 博文数量: 128
  • 博客积分: 10012
  • 博客等级: 上将
  • 技术积分: 2050
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 17:49
文章分类

全部博文(128)

文章存档

2011年(16)

2009年(57)

2008年(55)

分类:

2009-05-15 18:48:02

当在使用命令行时,有很多时间都用来查找所需要的文件,shell提供了一套完整的字符串模式匹配规
则,或者称之为元字符,这样就可以按照所要求的模式来匹配文件.还可以使用字符类型来匹配文件名.
1.使用*
    使用星号*可以匹配文件名中的任何字符串,在下面的例子中,给出文件名模式app*,它的意思是文
件名以app开头,后面可以跟随任何字符串,包括空字符串:
    *也可以用在文件名模式的开头,如:
    ls *.doc
    匹配所有以.doc结尾的文件名.
    *还可以用在文件名的当中,如:
    ls cl*.sed
    用于匹配所有以cl开头,后面跟任何字符串,最后以.sed结尾的文件名.
2.使用?
    使用可以匹配文件名中的任何单个字符,如:
    ls ??R*
    文件名以任意两个字符开头,接着是R,后面跟任何字符的文件.
    ls conf??.log
    文件名以conf开头,中间是任意两个字符,最后以.log结尾的文件.
    ls f??*s
    所有以f开头,中间是任意两个字符,后面跟随任意字符串,并以s结尾的文件名.
3.使用[...]和[!...]
    使用[...]可以用来匹配方括号[]中的任何字符.在这一方法中,还可以使用一个横杠-来连接两个
字母或数字,以此来表示一个范围.
    ls [io]*
    列出以i或者o开头的文件名
    ls log.[0-9]*
    匹配所有以log.开头,后面跟随一个数字,然后可以是任意字符串的文件名.
    ls log.[!0-9]*
    表示非数字开头的字符串.
    为了列出所有以大写字母开头的文件名,可以用:
    ls [A-Z]*
    为了列出所有以小写字母开头的文件名,可以用:
    ls [a-z]*
    为了列出所有以数字开头的文件名,可以用:
    ls .*
阅读(1327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~