glob模式
在学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式。
接下来我们认识下什么是glob模式。
在计算机编程中,特别是类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 |
glob模式的更多相关文章
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- Glob 模式
Glob 是什么 glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到 ...
- python glob标准库基础学习
#glob文件名模式匹配#作用:使用unix shell规则查找与一个模式匹配文件名"""尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种 ...
- node中glob模块总结
参考文章: githup_glob node-glob学习 前言: 最近在学习webpack配置, 其中有一项glob配置入口文件, 来获取对应的文件名, 达到入口entry和output文 ...
- fnmatch:Unix式glob模式匹配,简单场景下可以代替正则
介绍 fnmatch模块用于根据glob模式(如Unix shell所使用的的模式)比较文件名 简单匹配 import fnmatch ''' fnmatch将一个文件名与一个模式进行比较,并返回一个 ...
- GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- SQLite源程序分析之sqlite3.c
/****************************************************************************** ** This file is an a ...
随机推荐
- 还是this的问题
var name = "The Window"; var object = { name : "My Object", getNameFunc ...
- 使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法
最近在使用AFNetworkWorking读取JSON时,出现了NSCocoaErrorDomain Code=3840的错误.这种错误应该是服务器端返回JSON格式不对造成的.通过Google搜到这 ...
- 【前端】CoffeeScript
es6中的双箭头函数可以省略小括号,coffee中不可以 es6: (x) => x * x // 可以 x => x * x // 可以 coffee: (x) => x * x ...
- TomTom (16Q3)数据协议基础
title: TomTom数据协议介绍 title: TomTom数据协议介绍TomTom公司介绍主要经营的业务TomTom数据特点数据内容概述数据表命名特点数据关联特点数据的基本信息 TomTom公 ...
- json接口
http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=7waqfqbprs7pajbz2 ...
- python 中的 try/except/else/finally语句
1.python中try/except/else/finally正常的语句是这样的: try: normal excute block except A: Except A handle except ...
- 修改shell提示符的显示格式
默认的提示符显示方式如下: [root@localhost foldername]# 由于太长,希望能缩短到: [foldername]# 修改方式: # vim /etc/bashrc 找到第41行 ...
- [SoapUI] 在SoapUI里获取Excel中多行数据并存入List
ArrayList<ArrayList<String>> getCellValuesH( String filePath, String sheetName,int tr1,i ...
- np2016课程总结
林牧 SA16222166 课程目标 课程安排 A1a A2 A3 项目集成 环境搭建 其他方面的收获 本课心得 课程目标 通过实现一个医学辅助诊断的专家系统原型,具体为实现对血常规检测报告OCR识别 ...
- 三代PacBio reads纠错 - 专题
三代纠错的重要性不言而喻,三代的核心优势就是长,唯一的缺点就是错误率高,但好就好在错误是随机分布的,可以通过算法解决,这也就是为什么现在有这么多针对三代开发的纠错工具. 纠错和组装是分不开的,纠错就是 ...