1、通配符与正则表达式的区别:
首先通配符绝对不是正则表达式
bash shell
本身是不支持正则表达式的,要依靠shell的命令和工具来使用正则表达式,如grep,AWK,sed(文件处理三剑客)
bash
shell本身支持通配符,可以在命令中使用通配符达到某些目的,比如命令ls, cp,mv
,rm等。
2、通配符就4个:*, ?, [], [^]。当然还要记住专用字符集合。具体内容在以下博客。
http://blog.sina.com.cn/s/blog_162d7307e0102wnhk.html
3、正则表达式就是一类字符串处理的表达式。分为基础正则表达式和扩展正则表达式。(以下内容都只使用命令grep来举例学习)
(1)以前总是傻傻分不清find,grep,正则表达式等这些概念用法。现在总结一下。
grep是文本搜索,根据正则表达式去匹配文本,将匹配到的文本打印出来,配合管道命令使用,可以将某个命令执行结构中的需要的内容打印出来,find就是所说的某个命令,所以说find和grep没有什么捆绑关系(……曾经迷迷糊糊的以为find,grep,正则表达式就该是连在一起用的……)
(2)grep的使用格式。
grep 选项 正则表达式 文件
//这样就是通过正则表达式匹配文件中的文本
命令 | grep 选项 正则表达式
//这样就是首先执行命令,然后通过grep匹配前面命令执行结果中的一些内容并显示出来
选项
--color=auto: 对匹配到的文本着色显示(grep是按行匹配的);
-v: 显示不能够被pattern匹配到的行;
-i: 忽略字符大小写;
-o: 仅显示匹配到的字符串;
-q: 静默模式,不输出任何信息;
-A #:after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-E:使用ERE;
4、正则表达式有基础正则表达式,扩展正则表达式
(1)基础正则表达式。
正则表达式就是要匹配呗,那就涉及到要匹配的字符是什么,匹配的位置在哪里,匹配多少次,还有一个分组(为什么要分组?,怎么分组?上面讲到匹配多少次指的只能是单个字符的如果要一个字符串重复多次就用到分组,要分组就用小括号)接下来会详细介绍。
(2)扩展正则表达式。
grep不能使用扩展正则表达式,要用egrep或grep -E。