学习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

原创文章,转载请注明: 转载自xdlysk的博客

本文链接地址: glob模式

glob模式的更多相关文章

  1. Linux shell 通配符 / glob 模式

    概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...

  2. 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配置文件 ...

  3. Glob 模式

    Glob 是什么 glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到 ...

  4. python glob标准库基础学习

    #glob文件名模式匹配#作用:使用unix shell规则查找与一个模式匹配文件名"""尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种 ...

  5. node中glob模块总结

    参考文章:   githup_glob    node-glob学习 前言: 最近在学习webpack配置, 其中有一项glob配置入口文件, 来获取对应的文件名, 达到入口entry和output文 ...

  6. fnmatch:Unix式glob模式匹配,简单场景下可以代替正则

    介绍 fnmatch模块用于根据glob模式(如Unix shell所使用的的模式)比较文件名 简单匹配 import fnmatch ''' fnmatch将一个文件名与一个模式进行比较,并返回一个 ...

  7. GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...

  8. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  9. SQLite源程序分析之sqlite3.c

    /****************************************************************************** ** This file is an a ...

随机推荐

  1. 接触Matlab5年一个总结(Matlab要掌握的一些要点 )

    阅读目录 前言 Matlab的开发环境与简单介绍 Matlab的常见命令 Matlab的灵魂-矩阵操作 Matlab的.m或.fig的编程与技巧 从大二开始接触到matlab,讲真,这是一个我觉得很良 ...

  2. [DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

    先一层一层的说卷积神经网络是啥: 1:卷积层,特征提取 我们输入这样一幅图片(28*28): 如果用传统神经网络,下一层的每个神经元将连接到输入图片的每一个像素上去,但是在卷积神经网络中,我们只把输入 ...

  3. Android first--SharedPreferences

    public class MainActivity extends Activity { private EditText et_name;    private EditText et_pass; ...

  4. Silverlight安装成功后,提示安装

    Silverlight安装成功后,提示安装. 解决方法1: 刷新浏览器,重新打开. 解决方法2: 打开>控制面板>添加删除程序>找到Sliverlight那个,卸载它就对了,那些 S ...

  5. 过目不忘JS正则表达式

    正则表达式,有木有人像我一样,学了好几遍却还是很懵圈,学的时候老明白了,学完了忘光了.好吧,其实还是练的不够,所谓温故而知新,可以为师矣,今天就随我来复习一下这傲娇的正则表达式吧. 为啥要有正则表达式 ...

  6. 关于composer安装插件时候提示找不到fxp插件时候的解决办法

    如果你在某个目录使用composer.phar,而且在别的目录页使用了composer,并没有全局安装composer的时候,不同目录之间的可能会互相干扰从而报错 root@tyr:/var/www/ ...

  7. VS.Net 2015 Update3 学习(1) 支持Webpack

    让vs.net 编译的时候自动执行webpack 首先 管理员模式下打开 “Developer Command Prompt for VS2015", 是管理员模式啊! 然后进入 cd c: ...

  8. Spring的xml文件配置方式实现AOP

    配置文件与注解方式的有很大不同,多了很多配置项. beans2.xml <?xml version="1.0" encoding="UTF-8"?> ...

  9. J2EE版本

    Different versions of JEE: Note: JPE (Java Professional Edition) project announced in May 1998 at Su ...

  10. golang os/exec 执行外部命令

    exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. func LookPath(file string) (st ...