1、问:grep、egrep是什么?
答:grep、egrep是文本搜索工具,grep、egrep是根据用户指定的‘模式(pattern)’对目标文本进行过滤,显示被模式匹配到的行。
2、问:grep、egrep中用户指定的‘模式(pattern)’是什么?分为几类?
答:grep、egrep中用户指定的‘模式’是一种由特殊字符组成的具有某种特定意义的表达式,我们称为正则表达式,其中的特殊字符我们称为元字符。正则表达式分为:基本正则表达式、扩展正则表达式。
3、问:grep、egrep的使用格式是怎么书写的?
答:grep的使用格式是:grep [选项] ‘匹配模式’ 搜索的文件
egrep的使用格式是:egrep [选项] ‘匹配模式’ 搜索的文件
4、问:什么是元字符?
答:元字符是具有某些特定含义的特殊字符,只有搜索工具能够解析该元字符的含义,才能正确的匹配出元字符组成的正则表达式。grep能够解析基本正则表达式、egrep能够解析扩展正则表达式。bash能够解析(globbing文件名通配)
5、问:grep具有哪些工作特性(选项)?
答:grep常用的选项及其意义:-v ---->反向选取(选取匹配到的之外的内容)
案例解析:注意看上图,黑色部分的是‘Kernel’模式匹配的行,但是结果没有显示出来,这就是反向选取。
答:grep常用的选项及其意义:-o ---->仅显示匹配到的内容
案例解析:注意看上图,黑色部分是命令和结果,只是将匹配到的“Kernel”显示出来了,而不是将包含“Kernel”的行显示出来
答:grep常用的选项及其意义:-i ---->忽略字符大小写
--color=auto--->将匹配到的内容高亮显示
案例解析:注意看上图,模式‘kernel’中的k是小写的,但是匹配出来的是Kernel,k是大写的,而且“Kernel”高亮显示
答:grep常用的选项及其意义:-A n ---->显示匹配到的行及其下面的n行
案例解析:注意看上图,命令的结果是将匹配到的行及其下面两行都显示出来了。
答:grep常用的选项及其意义:-B n ---->显示匹配到的行及其下面的n行
案例解析:注意看上图,命令的结果是将匹配到的行及其上面一行都显示出来了。
答:grep常用的选项及其意义:-C n ---->显示匹配到的行及其上下n行
案例解析:注意看上图,命令的结果是将匹配到的行及其上面一行都显示出来了。
6、问:基本正则表达式、扩展正则表达式由哪些元字符组成,分别代表的意义,分别的格式是怎么书写的?
答:字符匹配类元字符: “.” “[]” “[^]”
grep能解析“.”元字符,具有的意义是匹配任意单个字符。
创建一个文件a.txt,文件内容如下:
问:现在要将a.txt文件中,m和g之间必须包含一个字符的行显示出来,并且匹配到的内容高亮显示。
命令详解:--color=auto 选项的含义是将匹配到的内容进行高亮显示。模式:’m.g’的含义是m后面必须跟一个任意单个字符,然后必须再跟上g。所在整个命令的含义就是将a.txt文件内容中的包含‘m.g’模式的行显示出来,再 将‘m.g’这部分内容高亮显示。
答:egrep能解析“.”元字符,具有的意义是匹配任意单个字符。
问:现在要将a.txt文件中,m和g之间必须包含一个字符的行显示出来,并且匹配到的内容高亮显示。
命令详解:和grep的用法一样。
答:grep能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符。
命令详解:模式’m[0-9]g’的含义是m后面必须跟一个集合内的单个字符,这里是数字集合。也就是m后面必须跟一个数字,然后再跟g。
答:egrep能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符。
命令详解:和grep的用法一样。
答:bash能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符。
命令详解:[ab].txt在文件名通配中的含义是通配a.txt和b.txt
答:grep能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符。
命令详解:模式’m[^0-9]g’的含义是m后面必须跟一个集合外的单个字符,这里是数字集合。也就是m后面必须跟一个非数字的字符,然后再跟g
答:egrep能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符。
命令详解:和grep的用法一样。
答:bash能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符。
命令详解:[^a].txt在文件名通配中的含义是通配出a以外的单个字符紧跟.txt的文件。
其他内容请查看(linux笔记之grep、egrep使用(二))。