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 ...
随机推荐
- Sublime Text 3使用指南(1)——安装package control组件
按Ctrl+`, 调出console 控制台中粘贴一下代码: import urllib.request,os; pf = 'Package Control.sublime-package'; ipp ...
- arguments的理解
(function(){ return typeof arguments; })(); 无聊的时候看看网上的面试题.个人认为通过面试题可以对某个知识点能够更加认识,踩过坑才会明白坑是有多大.代码中经常 ...
- 关于leetcode中链表中两数据相加的程序说明
* Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ ...
- selenium 封装代码
package pers.xeon.automate.auxt; import org.openqa.selenium.By; import org.openqa.selenium.WebElemen ...
- 合并文件夹里多个excel
Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As workbook, WbN As String Dim G As Long ...
- OpenLayers元素选择工具
OpenLayers的selector工具相信挺多人都没有用过,其实这个工具用处还是不少的.比如完成元素查询时,需要实现图属性联动,使用这个工具很方便.最近做项目时也使用到这个工具,使用起来确实挺方便 ...
- Openstack+Kubernetes+Docker微服务实践之路--弹性扩容
服务上线就要顶的住压力.扛的住考验,不然挨说的还是我们这帮做事的兄弟,还记得上图这个场景吗 老办法是服务集群部署,但总归有个上限,之前跟阿里合作的时候他们有个弹性计算可以通过设置CPU的阀值来动态扩展 ...
- iphone中 input圆角bug
今天写了个简单的登录注册,在电脑手机(除了iphone)样式都没有问题,但在iphone中却出现了异常,提交的按钮变成圆角被背景渐变的效果,随后又测试两个iphone版都是一个样,断定应该是safar ...
- angularjs指令系统系列课程(4):作用域Scope
指令的scope对象是一个很重要,很复杂的对象,我们这一节作为重点讲解 可取值: 1.false(默认), 2.true, 3.{}(object) 1.false:默认值,不创建新的作用域 2.tr ...
- Struts2 简介
回顾Struts2的使用过程,网上搜的教程多多少少都会有点问题,重新记录下创建过程,方便查阅. 1.下载Struts2的jar包 下载地址:http://archive.apache.org/dist ...