通配符和正则表达式区别
通配符和正则表达式区别
在Linux中,大多数命令行工具本身并不直接支持正则表达式。
通配符是大部分命令都支持的,用于查找文件或目录,而正则表达式是通过三剑客命令在文件(数据流)中过滤内容的。
- 通配符是shell自带的用于匹配文件名的工具,多用在文件名上,比如查找find,ls,cp 等等。
- 正则表达式则需要特定命令的支持才可以使用,如:grep、sed和awk(号称Linux三剑客)、vi/vim、perl等,这些都是处理文本的工具。
- 其次,shell对通配符与正则表达式的处理也有不同,“ ”内一般为通配符(是shell本身提取处理),‘ ’内一般为正则表达式(shell会将其中的数据传递给其它命令处理)。
通配符
正则表达式
- 基本正则表达式 (BRE)
支持工具 grep ,egrep,sed,awk
用来匹配字符、匹配次数、位置锚定
- 扩展正则表达式 (ERE)
支持工具 egrep , grep -E , awk , sed -r
主要用来匹配次数
汇总