常用参数
可选参数:
- -c 统计匹配行的个数
- -i 忽略大小写匹配
- -n 显示匹配行行号
- -x 显示完全匹配的行
- -v 取反
- -A 匹配行的后多少行
- -B 匹配行的前多少行
- -E 扩展正则
基本使用
- 命令格式
1 | grep [可选参数] "[被过滤字符串]" [文件名称] |
-c 统计匹配行的个数
- 样例文本
1 | ~/grep cat a.txt |
- 演示案例
1 | ~/grep grep -c "hello" a.txt |
-i 忽略大小写匹配
- 样例文本
1 | ~/grep cat b.txt |
- 演示案例
1 | ~/grep grep -i "HELLO" b.txt |
-n 显示匹配行行号
- 样例文本
1 | ~/grep cat b.txt |
- 演示案例
1 | ~/grep grep -n "world" b.txt |
-x 显示完全匹配的行
- 样例文本
1 | ~/grep cat c.txt |
- 演示案例
可以观察到,只能显示出完全匹配的行
1 | ~/grep grep -x "hello" c.txt |
-v 取反
- 样例文本
1 | ~/grep cat c.txt |
- 演示案例
1 | ~/grep grep -v "hello" c.txt |
上面的演示结果是区分大小写的,下面加上
-i参数使其不区分大小写
1 | ~/grep grep -iv "world" c.txt |
-A&-B 匹配行的后多少行
-B 和 -A 在某些情况下还是比较有用的,例如在排查日志时,可能就会需要查看指定字段的上下几行来定位程序的错误原因
- 样例文本
1 | ~/grep cat d.txt |
- 演示案例
1 | # -A |
-E 正则表达式
这里直接看下面”正则表达式”中的演示案例
正则表达式
正则表达式的一些基础知识就不在这篇文章中讲解了,若想深入了解可以参考我的另一篇博客”正则表达式”.
这里只举几个简单的例子来让你快速了解上手
以下三个符号表示匹配的次数
- *:
零次或多次匹配前面的字符或表达式 - +:
一次或多次匹配前面的字符或表达式 - ?:
零次或一次匹配前面的字符或表达式
还有一个特殊的符号”.“,可以表示除了换行符以外的任意字符
样本文件
1 | ~/grep cat demo.txt |
演示案例
1 | # 匹配 he + 任意个数的字符 |