Linux中grep命令总结

阅读: 评论:0

Linux中grep命令总结

Linux中grep命令总结

grep家族共有三个:grep

egrep  [Extend grep]

fgrep   [Fast grep]

特点:

命令

是否支持正则

支持的正则类型

grep

基本正则表达式

egrep

扩展正则表达式

fgrep

 

命令格式:grep [选项] [文件]

常用选项:

-E:开启扩展(extend)的正则表达式

-i:忽略大小写(ignore case)

-v:反选(invert),只打印没有匹配的。

-n:显示行号

-w:被匹配的文本只能是单词,而不是单词的某一部分。例如:文本中只有liker和like,而我搜索的是like,就可以使用-w选项来避免搜索到liker。

-c:显示共有多少行被匹配到了,而不是显示被匹配的内容。同时使用-cv可以显示有多少行没有被匹配到。

--color:将匹配到的内容以颜色高亮显示

-A n:显示匹配到的字符串所在的行及其后n行 after

-B n:显示匹配到的字符串所在的行及其前n行 before

-C n:显示匹配到的字符串所在的行及其前后各n行,context

多文件查找

-l:查找关键字在哪个文件中包含。例如:grep –l “hello” *.txt就是在当前目录下的所有txt文件中查找哪个文件中包含hello这个词

-L:查找关键字在哪个文件中不包含

 

区别:

grep的正则表达式是基本正则表达式

egrep的正则表达式是扩展正则表达式

fgrep完全不支持任何正则表达式

例如:想搜索以roo开头或者bash结尾的行

egrep:egrep ‘^root|bash$’ passwd

grep: grep ‘^root|bash$’ passwd,这里是搜不出结果的,因为“|”是扩展正则表达式,除非这里再加上-E选项。

fgrep:fgrep ‘^root|bash$’ passwd,这里一样搜不出来,因为在fgrep中是没有特殊字符的,只有普通字符,这里的”^”就是符号^,而不是以某字符开头的意义。

 

基本正则表达式和扩展正则表达式

正则表达式分为两大类:

       基本正则表达式(BRE)

       扩展正则表达式(ERE)

区别:

在基本正则表达式中,仅有“^”、“$”、“.”、“[”、“]”、“*”这些元字符,其他的都会被识别为普通字符。

在扩展正则表达式中,则在基本正则表达式的基础之上,新增了“(”、“)”、“{”、“}”、“?”、“+”、“|”等元字符。

只有在用反斜杠进行转义的情况下,字符“(”、“)”、“{”、“}”才会在扩展正则表达式中被当做元字符处理,在基本正则表达式中,任何元字符前面加反斜杠反而会被当做普通字符来处理。

本文发布于:2024-01-28 06:30:34,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063946395470.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:命令   Linux   grep
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23