网站加入视频,电子公司网页设计,wordpress双站 中英文,怎么建设个人网站教程1、概念
glob 模式#xff08;globbing#xff09;也被称之为 shell 通配符#xff0c;名字的起源来自于 Unix V6 中的 /etc/glob #xff08;详见 man 文档#xff09;。glob 是一种特殊的模式匹配#xff0c;最常见的是通配符拓展#xff0c;也可以将 glob 模式设为精…1、概念
glob 模式globbing也被称之为 shell 通配符名字的起源来自于 Unix V6 中的 /etc/glob 详见 man 文档。glob 是一种特殊的模式匹配最常见的是通配符拓展也可以将 glob 模式设为精简了的正则表达式在最新的 CentOS 7 中已经删除了 glob 的相关描述文档删除的原因由于 glob 已经整合到了 shell 之中然后就有了 shell 通配符。 笔者在查阅资料的时候发现关于 glob 模式或者 globbing 的相关描述以及文档是少之又少所以特地在这里整理一下并重新写一写使用方法 shell 通配符 / glob 模式通常用来匹配目录以及文件而不是文本
2、语法
字符解释*匹配任意长度任意字符?匹配任意单个字符[list]匹配指定范围内list任意单个字符也可以是单个字符组成的集合[^list]匹配指定范围外的任意单个字符或字符集合[!list]同[^list]{str1,str2,...}匹配 srt1 或者 srt2 或者更多字符串也可以是集合
3、专用字符集
字符意义[:alnum:]任意数字或者字母[:alpha:]任意字母[:space:]空格[:lower:]小写字母[:digit:]任意数字[:upper:]任意大写字母[:cntrl:]控制符[:graph:]图形[:print:]可打印字符[:punct:]标点符号[:xdigit:]十六进制数[:blank:]空白字符未验证
注在使用通配符的过程中可能会遇到文件名中包含了特殊字符的情况例如
bash$:ls
a\b a[123]b A[abc]123 abc!123
a 12 b #这是一个文件
在不使用专用字符集的情况下需要使用转义符来匹配或者使用单引号将其框选。
这里将 Linux shell 元字符列出在使用通配符时如果没有进行转义可能就会被辨识为元字符。
字符作用IFS由 space 或 tab 或 enter 三者之一组成CR由 enter 产生设定变量$作变量或运算替换重导向标准输出重导向标准输入|命令管线重导向文件描述符或将命令静默执行( )将其内的命令置于 nested subshell 执行或用于运算或命令替换{ }将其内的命令置于 non-named function 中执行或用在变量替换的界定范围;在前一个命令结束时而忽略其返回值继续执行下一个命令在前一个命令结束时若返回值为 true继续执行下一个命令\在前一个命令结束时若返回值为 false继续执行下一个命令!执行 history 中的命令
4、示例
这里使用 /etc 下的文件为例
匹配以 a开头中间包含任意数量数字的文件
ls a*[0-9]*
#当然你是找不到的因为通常情况下 /etc 下没有以数字开头的文件
匹配以任意小写字母开头中间包含数字的文件
ls [[:lower:]]*[0-9]*
#相信你已经看到了一些文件我们继续
列出所有文件中以 init 开头英文结尾的文件
ls init*[a-z]
列出以 au,b,c 开头的文件
ls {au,[bc]}*
更多的实例可以通过搜索引擎找到这里就不多说了
5、注意事项
在使用专属字符集的时候字符集之外还需要用 [] 来包含住否则专用字符集不会生效例如 [[:space:]]。想要转义的时候单引号与双引号使用方法是不同的单引号会转义所有字符而且单引号中间不允许再出现单引号双引号允许出现特定的 shell 元字符具体字符可以自行查询。在使用花括号 {} 的时候里面的单个字符串需要使用单引号或者双引号括住否则就会视为多个的单个字符。