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)

区别:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值