Bash 通配符介绍

本文参考《Linux Shell 编程 从入门到精通》(电子工业出版社出版)一书 3.3 章节

Bash 本身并不支持正则表达式,但是 Bash 可以使用一些通配符实现通配功能:

?   代表一个任意字符
*   代表任意个任意字符
[]  需要匹配的字符集合(例如 a-z, A-Z, 0-9 这样)
{}  代表一组表达式的与关系,例如 {[a-h]*.txt,0?.txt}
^   表达式取反

? 代表一个任意字符,例如

ls -l 0?.txt

将会显示以 0 开头 .txt 结尾的文件名是两位的文件,例如 01.txt, 0A.txt, 0@.txt 等等。

* 代表任意个任意字符,跟 ? 的区别仅在于 * 不限制匹配的字符数量。

[] 存放字符集合,例如

ls -l o[a-e].txt

则会匹配 o 开头 .txt 结尾的,表达式所在位置的字母是 a 到 e 的文件。

{} 里面填表达式集合,但是它们将以与关系组合,例如

ls -l {[a-h]*.txt,0?.txt}

则里面 [a-h]*.txt 和 0?.txt 两个表达式匹配到的文件都将会被显示出来。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,306评论 19 139
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 4,771评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 8,360评论 3 49
  • 用听一首歌的时间 来想念你 又怎么能够忘记你 用凝望花开的心情 来怀念你 怀念你头发的香气 下雨 天晴 你总在脑海...
    蓝色海马阅读 1,365评论 0 1