grep
grep 原单词Gnu Regular Expression Print | (global search regular expression(RE) and print out the line) (全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。)
<mark style="box-sizing: border-box; background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);">工作中应用于日志关键字过滤,查找日志中处理对应接口或者代码信息</mark>
grep 命令用于查找文件里符合条件的字符串。如果有,会打印出符合条件的每一行
语法
grep 关键词 文件或目录
举例: grep mysql a.log : 这样会把 a.log 文件里包含 mysql的每一行给打印出来
参数
参数介绍
-A 原单词 after 之后
-B 原单词 before 之前
image.png
- -A<行数>:除了显示包含关键词的那一行之外,并显示该行之后的内容,行数写几就显示几行
- -B<行数>:除了显示包含关键词的那一行之外,并显示该行之前的内容,行数写几就显示几行
实战
进入 /root目录
新建 grepTest 文件夹
将/root/vimTest/base.yml 复制到当前目录下
cp /root/vimTest/base.yml .
image.png
再复制几个副本,等会练习grep使用。
cp base.yml base2.yml
cp base.yml app.yml
image.png
查找base.yml文件中包含8084的那一行
grep 8084 base.yml
image.png
查找base.yml文件中包含8084的那一行,并展示前一行和后两行
grep -A2 -B1 8084 base.yml
image.png
查找base开头的文件中,包含guoya_mall的那一行
grep guoya_mall base*
image.png
- 表示通配符,可以在find命令课程中复习*的使用
查找以.yml结尾文件中,包含testDB的那一行,并显示前3行,后3行.
grep -A3 -B3 testDB *.yml
image.png
网友评论