美文网首页
Glob匹配模式

Glob匹配模式

作者: 随风Wayne | 来源:发表于2017-12-31 11:50 被阅读0次

在Linux中,glob是用来匹配路径名的通配符,主要包含以下四种:

通配符(Wild Matching)
  • *匹配0个或者多个字符,比如d\*,可以匹配ddlddl
  • ?匹配单个字符,比如d?,只匹配dd,不能匹配d
字符集(Character classes)

包含在[]中的字符,只会被匹配一个,并且[]不可以为空。比如[abc]匹配a,b,c三个中的一个字符。

需要注意[ ]里可以包含[,],!,?,*,\这些特殊字符,因此[[!*?]]匹配[,!,,*,?中的一个字符。

字符范围(Range)

两个字符中间用'-'连接表示range,比如[0-9]等同于[0123456789]。

需要注意的是,如果-出现在开头或者结尾,并不表示range,比如[-a]或者[a-]匹配-,a字符中的一个。

字符取反(Complementation)

[!abc]表示匹配a,b,c之外的一个字符。

注意事项

  • 上面所有形式的glob都不匹配/(Forward slash)字符,因此假设有如下目录结构:
  ├── Document
  │   ├── glob.txt
  │   ├── Linux
  │       ├── glob.txt

那么在Document目录下运行ls *.txt只会列出Document目录下的glob.txt,而不会列出Linux/glob.txt

**双星号代表可以匹配后代所有子目录。所以上面可以使用ls **/*.txt,列出glob.txt和Linux/glob.txt

  • 任何以.开头命名的文件,都必须在glob中显示指定才能匹配;比如有一个文件.abc,那么rm \*匹配不到.abc,只能使用rm .*

  • glob与正则表达式不一样;glob只匹配路径名,而不是匹配文件的内容,并且glob与正则表达式虽然有相同的通配符,但是意义却不一样,比如a*k在glob中可以匹配ak,abk,abck,但在正则表示中表示匹配ak,aak,aaak。

相关文章

  • Bazel Build:Glob模式匹配

    glob模式 glob模式也被常称之为shell通配符,是一种特殊的模式匹配,通常用于匹配目录以及文件,而非文本。...

  • Glob匹配模式

    在Linux中,glob是用来匹配路径名的通配符,主要包含以下四种: 通配符(Wild Matching) *匹配...

  • 「SQLite学习笔记」Glob 子句

    SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算...

  • API 文档

    1、gulp.src(globs[, options]) 输出(Emits)符合所提供的匹配模式(glob)或匹配...

  • SQLite Glob 子句

    SQLite Glob 子句 SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与...

  • python3从零学习-5.4.7、Unix风格路径名模式扩展g

    源代码:Lib/glob.py glob模块可根据 Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确...

  • python 路径遍历神库 glob

    python标准库之glob介绍 glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。查找文件只用到...

  • glob

    glob匹配规则 glob主要为筛选文件 * 匹配任意 0 或多个任意字符 ? 匹配任意一个字符 [...] 若字...

  • Python标准库glob介绍

    glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。 1、通配符 星号(*)匹配零个或多个字符 列出...

  • glob表达式

    glob表达式(glob expressions)通配符: * 匹配文件路径中的0个或多个字符,但**不会匹配路径...

网友评论

      本文标题:Glob匹配模式

      本文链接:https://www.haomeiwen.com/subject/xhwogxtx.html