介绍
文本分析三剑客grep sed awk在实际工作环境中用的很多,今天分享一下,过滤器 grep egrep
用法
使用一般有如下两种形式
第一种形式
grep [option] [pattern] [file1,file2]
如查找show.txt里面包含content的行
第二种形式
command | grep [option] [pattern]
如查看某个服务信息
如查找show.txt里面包含content的行
必须掌握的选项
选项 | 含义 |
-v | 显示不匹配行信息(反向搜索) |
-i | 搜索时忽略大小写 |
-n | 显示行号(文件中的行号) |
-r | 递归搜索(搜索文件夹) |
-E | 支持扩展正则表达式 |
-F | 不按正则表达式匹配,按照字符串字面意思匹配 |
show.txt文件中的内容如下
-v 选项
-n选项
-r选项
查找/etc/myconfig及其子目录下,打印出包含content字符串所在行的内容
-F选项
py被当成正则表达式处理,我就想搜索py这个内容,就可以用到-F选项
了解的选项
选项 | 含义 |
-c | 只输出匹配行的数量,不显示具体内容 |
-w | 匹配整词 |
-x | 匹配整行 |
-l | 只列出匹配的文件名,不显示具体匹配行内容 |
-a | 将二进制文件转为文本 |
show.txt的文件内容如下
-w选项(lovelove这个词没有显示出来,因为love前后得有空格或者tab才会认为是一个单词)
-x 选项(匹配行,行的内容只能是i love a)
这些选项可以混着用,例如
查找/etc/myconfig及其子目录下,打印出包含content字符串所在文件的文件名
-r:递归搜索(搜索文件夹)
-l:只列出匹配的文件名,不显示具体匹配行内容、
当然用find也是可以的,只不过麻烦一点
查看日志常用的选项
选项 | 含义 |
-C n | 显示匹配行及其前后5行 |
-B n | 显示匹配行及其前5行 |
-A n | 显示匹配行及其后5行 |
show.txt内容如下
查找4及其上下2行
查找4及其前2行
grep和egrep的区别和联系
grep默认不支持扩展正则表达式,只支持基础正则表达式
使用grep -E 可以支持扩展正则表达式
使用egrep可以支持扩展正则表达式,与grep -E等价