题记: 之前对'二者'傻傻的分不清,总出现'张冠李戴'的现象,对此做一些'深入'的理解
一 shell通配符
① 基本概念
1)glob 在正则出现'之前'就有了,主要用于匹配'目录'或'文件'路径,并'处理'各种后缀的文件('通称')
理解: glob'整合到'shell中了,形成'shell通配符'
2)重点:shell 通配符 'glob 模式'通常用来匹配'目录'以及'文件',而'不是文本内容'!!!
② 常见通配符
[characters] 字符集合的任意'一个字符'
{str1,str2,str3} 匹配 'srt1' 或者 'srt2' 或者'更多'字符串;也可以是'集合'-->{1..9}
强调: Glob'不匹配'任何'隐藏'文件或文件夹
③ 专用字符集
[::] --> POSIX风格的'专用'字符集 -->'或'的匹配
[[::]] --> 字符集中'单个字符'的匹配
④ 案例简单讲解
docs/**/*.md -->匹配 'docs 目录下'及'子目录下'所有 markdown 文件
⑤ glob的应用场景
⑤ shell的元字符
使用'通配符'时,如果'没有进行转义'可能就会'被辨识为元字符'
元字符: '特殊'含义
⑥ 与shell通配符相关的linux命令
1)通配符是shell'自带'的用于'匹配文件名'的工具,多用在'文件名'上
2)查找'find'、列出'ls、tree'、复制'cp'、移动'mv'、删除'rm'、创建'mkdir、touch'、打开文件'vi/vim、gedit'、文件大小'du' 等等
小结: 理论上'跟文件相关'的都可以'使用通配符'
⑦ 小结
⑧ 注意事项
二 正则表达式
备注: 本'章节'会粗略的讲解,主要是对比二者的'差异'
细节: 正则表达式则需要'特定命令的支持'才可以使用,如:'grep'、'sed'和'awk'(号称Linux'三剑客')、vi/'vim'、'perl'等,这些都是处理文本的工具
三 差异性对比
① 操作对象不同
1)通配符是用来'匹配文件或目录'
2)正则表达式是用来匹配'字符串'的 --> 处理'文本内容'
② 符号
1)"双引号"内一般为'通配符' -->是'shell本身'提取处理
2)'单引号'内一般为'正则表达式' -->shell会将其中的数据'传递给'其它'命令'处理
四 参考博客