首页 > 代码库 > linux笔记之grep使用

linux笔记之grep使用

1、问:grep、egrep是什么?

答:grep是文本搜索工具,grep是根据用户指定的‘模式(pattern)’对目标文本进行过滤,显示被模式匹配到的行。



2、问:grep、egrep中用户指定的‘模式(pattern)’是什么?分为几类?

答:grep中用户指定的‘模式’是一种由特殊字符组成的具有某种特定意义的表达式,我们称为正则表达式,其中的特殊字符我们称为元字符。正则表达式分为:基本正则表达式、扩展正则表达式。



3、问:grep、egrep的使用格式是怎么书写的?


答:grep的使用格式是:grep  [选项]  ‘匹配模式’   搜索的文件

     egrep的使用格式是:egrep  [选项]  ‘匹配模式’   搜索的文件




4、问:什么是元字符?


答:元字符是具有某些特定含义的特殊字符,只有搜索工具能够解析该元字符的含义,才能正确的匹配出元字符组成的正则表达式。grep能够解析基本正则表达式、egrep能够解析扩展正则表达式。bash能够解析(globbing文件名通配)



5、问:grep具有哪些工作特性(选项)?

答:grep常用的选项及其意义:-v ---->反向选取(选取匹配到的之外的内容)

wKiom1RomH2D9xfoAAGYJ8rz2lI166.jpg

案例解析:注意看上图,黑色部分的是‘Kernel’模式匹配的行,但是结果没有显示出来,这就是反向选取。



答:grep常用的选项及其意义:-o ---->仅显示匹配到的内容

wKioL1RomNPwAdSBAAEtpAJawSk428.jpg

案例解析:注意看上图,黑色部分是命令和结果,只是将匹配到的“Kernel”显示出来了,而不是将包含“Kernel”的行显示出来



答:grep常用的选项及其意义:-i ---->忽略字符大小写

                            --color=auto--->将匹配到的内容高亮显示

wKiom1RomouhzepnAAFNv10m3zY355.jpg

案例解析:注意看上图,模式‘kernel’中的k是小写的,但是匹配出来的是Kernel,k是大写的,而且“Kernel”高亮显示



答:grep常用的选项及其意义:-A n  ---->显示匹配到的行及其下面的n行

wKioL1RonFqDXkudAAG2wF2mLo8993.jpg

案例解析:注意看上图,命令的结果是将匹配到的行及其下面两行都显示出来了。



答:grep常用的选项及其意义:-B n ---->显示匹配到的行及其下面的n行

wKiom1RonqWCD8goAAGkSTV87zw141.jpg

案例解析:注意看上图,命令的结果是将匹配到的行及其上面一行都显示出来了。



答:grep常用的选项及其意义:-C n ---->显示匹配到的行及其上下n

wKiom1RooHDD7q2sAAF4J4z2rhI604.jpg

案例解析:注意看上图,命令的结果是将匹配到的行及其上面一行都显示出来了。



6、问:基本正则表达式、扩展正则表达式由哪些元字符组成,分别代表的意义,分别的格式是怎么书写的?

答:字符匹配类元字符:   “.”  “[]”   “[^]”

grep能解析“.”元字符,具有的意义是匹配任意单个字符。

创建一个文件a.txt,文件内容如下:

wKiom1Rop4yDbwr_AABUDGHj6TA079.jpg

问:现在要将a.txt文件中,m和g之间必须包含一个字符的行显示出来,并且匹配到的内容高亮显示。

wKioL1RoqFPAzJvLAACaPyxzC9w180.jpg

命令详解:--color=auto  选项的含义是将匹配到的内容进行高亮显示。模式:’m.g’的含义是m后面必须跟一个任意单个字符,然后必须再跟上g。所在整个命令的含义就是将a.txt文件内容中的包含‘m.g’模式的行显示出来,再 将‘m.g’这部分内容高亮显示。



答:egrep能解析“.”元字符,具有的意义是匹配任意单个字符。

问:现在要将a.txt文件中,m和g之间必须包含一个字符的行显示出来,并且匹配到的内容高亮显示。

wKiom1RoqJmw5orVAACVGbqPsLo143.jpg

命令详解:和grep的用法一样。






答:grep能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符

wKiom1RoqrigwZa9AAB3UHY8W0U398.jpg

命令详解:模式’m[0-9]g’的含义是m后面必须跟一个集合内的单个字符,这里是数字集合。也就是m后面必须跟一个数字,然后再跟g。



答:egrep能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符

wKioL1RoqxTDSGpcAAB3_ZEB7ZA628.jpg

命令详解:和grep的用法一样。



答:bash能解析“[]”元字符,具有的意义是匹配指定集合中的任意单个字符

wKioL1Roq_2T7IUPAAD4kZsa13k557.jpg

命令详解:[ab].txt在文件名通配中的含义是通配a.txt和b.txt






答:grep能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符

wKioL1RorUnA7ou1AACT1Q13-uY668.jpg

命令详解:模式’m[^0-9]g’的含义是m后面必须跟一个集合外的单个字符,这里是数字集合。也就是m后面必须跟一个非数字的字符,然后再跟g



答:egrep能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符

wKioL1RorV3j2sloAACaTWSRklc058.jpg

命令详解:和grep的用法一样。



答:bash能解析“[^]”元字符,具有的意义是匹配指定集合外的任意单个字符

wKioL1RorcyR65ktAAD24EZwK5E843.jpg

命令详解:[^a].txt在文件名通配中的含义是通配出a以外的单个字符紧跟.txt的文件。






linux笔记之grep使用