前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >glob模式文件

glob模式文件

作者头像
狼啸风云
修改2022-09-03 21:57:50
9380
修改2022-09-03 21:57:50
举报

在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名。例如:Unix命令,将所有以扩展名为.txt的文件从当前目录拷贝到textfiles目录。

1

mv *.txt textfiles/

这里【*】是一个匹配任意数量字符基本通配符,*.txt就表示一个glob模式。另一个通用的通配符是【?】,它表示任意一个字符。

最常用的通配符是 *,?,[…]:

通配符

描述

例子

匹配

不匹配

*

匹配任意数量的字符包括空字符

Law*

Law, Laws, or Lawyer

*Law*

Law, GrokLaw, or Lawyer.

?

匹配任意一个字符

?at

Cat, cat, Bat or bat

at

[abc]

匹配任意一个包含的字符

[CB]at

Cat or Bat

cat or bat

[a-z]

匹配任意一个给定范围的字符

Letter[0-9]

Letter0, Letter1 etc.

Letters or Letter

注意,在所有以上例子中路径分隔符(unix的/,windows的\)都不会被匹配。

在Linux和POSIX系统中[…]有以下两个扩展:

通配符

描述

例子

匹配

不匹配

[!abc]

不匹配任意一个包含的字符

[!C]at

Bat, bat, or cat

Cat

[!a-z]

不匹配任意一个给定范围的字符

Letter[!3-5]

Letter1, Letter2 etc.

Letter3, Letter4 or Letter5

与正则的比较:

Glob的通配符

等价正则的表达式

?

.

*

.*

Glob尝试匹配整个字符串(例如,S*.DOC将匹配S.DOC和SA.DOC,但不匹配POST.DOC或SURREY.DOCKS),正则只匹配子串除非使用^和$。所以S*.DOC的等价正则是^S.*\.DOC$。

node glob对常用通配符又做了一些扩展:

通配符

描述

例子

匹配

不匹配

**

匹配任意数量的字符包括空字符(包括路径分隔符)

**/*.js

/a/b/c.js

!(pattern|pattern)

匹配除了()内以外的pattern

!(abc|bcd)

aaa,bbb

abc.bcd

?(pattern|pattern)

匹配至多一个()内的pattern

?(abc|bcd)

abc

bbb

+(pattern|pattern)

匹配至少一个()内的pattern

+(abc|bcd)

abc

bbb

*(pattern|pattern)

匹配任意个()内的pattern

*(abc|bcd)

abc

bbb

@(pattern|pattern)

精确匹配()内的其中一个pattern

@(abc|bcd)

abc

abd

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最常用的通配符是 *,?,[…]:
  • 在Linux和POSIX系统中[…]有以下两个扩展:
  • 与正则的比较:
  • node glob对常用通配符又做了一些扩展:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档