grep egrep的使用

本文深入介绍了文本分析工具grep、sed和awk的实用技巧,重点讲解了grep的多种用法,包括基本和扩展正则表达式的使用,以及如何通过选项进行更精确的搜索,如忽略大小写、显示不匹配项、递归搜索等。

介绍

文本分析三剑客grep sed awk在实际工作环境中用的很多,今天分享一下,过滤器 grep egrep

用法

使用一般有如下两种形式

第一种形式
grep [option] [pattern] [file1,file2]

如查找show.txt里面包含content的行

grep content show.txt

第二种形式
command | grep [option] [pattern]

如查看某个服务信息

ps -ef | grep mongo

如查找show.txt里面包含content的行

cat show.txt | grep content

必须掌握的选项

选项含义
-v显示不匹配行信息(反向搜索)
-i搜索时忽略大小写
-n显示行号(文件中的行号)
-r递归搜索(搜索文件夹)
-E支持扩展正则表达式
-F不按正则表达式匹配,按照字符串字面意思匹配

show.txt文件中的内容如下

a
b
c
d
py*
i love python

-v 选项

grep -v a show.txt
 
b
c
d
*py
i love python

-n选项

grep -n a show.txt 

1:a

-r选项
查找/etc/myconfig及其子目录下,打印出包含content字符串所在行的内容

 grep -r content /etc/myconfig

-F选项

grep py* show.txt 

py*
i love python

py被当成正则表达式处理,我就想搜索py这个内容,就可以用到-F选项

grep -F py* show.txt

py*

了解的选项

选项含义
-c只输出匹配行的数量,不显示具体内容
-w匹配整词
-x匹配整行
-l只列出匹配的文件名,不显示具体匹配行内容
-a将二进制文件转为文本

show.txt的文件内容如下

love 
lovelove
i love
i love a

-w选项(lovelove这个词没有显示出来,因为love前后得有空格或者tab才会认为是一个单词)

grep -w love show.txt

love 
i love
i love a

-x 选项(匹配行,行的内容只能是i love a)

grep -x "i love a" show.txt
i love a

这些选项可以混着用,例如
查找/etc/myconfig及其子目录下,打印出包含content字符串所在文件的文件名

grep -rl mad81 /etc/myconfig

-r:递归搜索(搜索文件夹)
-l:只列出匹配的文件名,不显示具体匹配行内容、

当然用find也是可以的,只不过麻烦一点

find /etc/myconfig -type f | xargs grep -l 'abc' 

查看日志常用的选项

选项含义
-C n显示匹配行及其前后5行
-B n显示匹配行及其前5行
-A n显示匹配行及其后5行

show.txt内容如下

1
2
3
4
5
6
7

查找4及其上下2行

cat show.txt | grep -C 2 4
2
3
4
5
6

查找4及其前2行

grep -B 2 4 show.txt 
2
3
4

grep和egrep的区别和联系

grep默认不支持扩展正则表达式,只支持基础正则表达式
使用grep -E 可以支持扩展正则表达式
使用egrep可以支持扩展正则表达式,与grep -E等价

参考博客

[1]显示上下几行
https://www.cnblogs.com/mfryf/p/3336288.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java识堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值