grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
一、语法格式:
grep 选项 参数 文件
Usage: grep [OPTION]... PATTERN [FILE]...
二、常用命令参数
三、grep正则表达式
四、grep命令常见用法
注:此处所有的grep命令用法我将以 a.txt 文件里面的内容作为演示的参考
4.1 过滤关键字行
4.2 过滤关键字行显示关键字在文本的行数
4.3 带颜色显示关键字在文本的行数字
4.4 不区分大小写
4.5 取反
4.6 显示带关键字的行数
4.7 显示关键字行和后面的2行(总共3行) After
4.8 显示关键字行和前面的2行 Before
4.9 匹配IP地址 -E 扩展正则表达式
注:.有特殊意义,所以需要转义
4.10
注:多个条件需要用到-E参数
4.11 递归查找
注:-n:打印行号 --color:带颜色 -R:递归查询 -E:支持扩展正则
4.12
选项 -e:匹配多个匹配样式 -o:只输出匹配到的内容
4.13 搜索多个文件并查找匹配文本在哪些文件中:
4.14 在grep搜索结果中包括或者排除指定文件:
五、补充:grep使用多个查询条件?
1、打印包含字母的行
2、打印至少有4个字母连在一起的行
9、< 锚定单词的开始,如:'<grep'匹配包含以grep开头的单词的行。
> 锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。
<...> 匹配只包含括号里面的单词的行,如匹配<zhangjunchao>,zhangjunchao110这种不匹配。
grep高级使用理解
1、待查找的文件有几千万行,你的规则有几百条
2、你需要使用linux扩展正在表达式
grep -E pattern file
默认情况下grep只支持基础正在表达式,E选项可以支持扩展表达式(也可以待地gerp -E 为egrep)
什么是扩展正在表达式?
3、你想看到被匹配的行周围(前后)的行
grep -A2 -B2 'aaa' file
-A :after,显示匹配行后的行 -A2 显示 后2行
-B :before,显示匹配行前的行 -B2 显示 前2行
如果你真的同时需要显示,前后各n行,那么你可以用-C选项
grep -C2 'aaa' file 作用与-A2 -B2完全相同
egrep命令
egrep用于在文件中查找指定的字符串,与grep -E相似,使用语法可参考grep命令。
语法:egrep(选项)(查找模式)(文件名1,文件名2,……)
实例一:筛选字符串
注:用( )表示一个整体,例如(oo)+就表示1个 ‘oo’ 或者多个 ‘oo’
实例二:筛选字符串