本文已参与「新人创作礼」活动,一起开启掘金创作之路。
通配符和正则表达式有相似之处也有不同之处,到底区别在于何处?
在Linux中,用作于匹配文件名,用shell进行解析,比如find命令,ls命令,cd命令等。而正则表达式主要是用于文件内容的匹配,比如文本三剑客命令grep、sed、awk就需要频繁使用正则表达式。
常用的通配符
- *: 匹配任意多个字符
- /?:可以匹配任意单个字符
- [list]:匹配的是列表中任意单个字符
- [c1-c2]:匹配的是c1-c2中任意单个字符
- [c1-c2]或者[!c1-c2]:不匹配范围中任意单个字符
- {string1, string2, string3.......}:匹配{}中任意单个字符串
shell的元字符
- 重定向:>或者<
- 管道符:|
- 赋值语句:=
- 获取变量值:$变量名
- 转义符:\
- 注释符:#
- 后台执行命令:&
- 在子shell中执行命令或运算:()或者一对反引号
- 函数中执行变量替换的定界范围:{}
- 命令结束后,忽略其返回结果,继续执行下一个命令:分号
- 同时执行多条命令:&&,前一条命令执行结果为True
- 同时执行多条命令:||,前一条命令执行结果为false
- 非:!
转义符
- 硬转义:一对单引号,关闭比所有元字符
- 软转义:一对双引号