美文网首页测试员的那点事软件测试程序员
一些linux命令学习(二)--grep命令

一些linux命令学习(二)--grep命令

作者: 迈阿密小白 | 来源:发表于2018-03-15 13:58 被阅读100次

前阵子稍微复习了一下基本的linux命令,这次单独学习一下grep命令,这边算作一个学习笔记。

grep命令

Linux grep命令用于查找文件里符合条件的字符串。

1.在指定文本中寻找符合条件的文本行 grep

以在catalina.out文件中查找保存为例:

grep ‘match_pattern’ file_name
grep 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

仅会包含指定信息的文本行


grep.png

2.输出文本行和行数 grep -n

grep -n ‘match_pattern’ file_name
grep -n 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

会在文本行前面加上行数


grep -n.png

3.输出文本行行数 grep -c

grep -c ‘match_pattern’ file_name
grep -c 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

仅输出文本行行数的和


grep -c.png

4.输出文本行及其上下相关文本 grep -A -B -C

grep -A 5 ‘match_pattern’ file_name  ---之后5行
grep -A 5 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

grep -B 5 ‘match_pattern’ file_name  ---之前5行
grep -B 5 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

grep -C 5 ‘match_pattern’ file_name  ---前5行后5行
grep -C 5 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out

后5行


grep -A.png

前5行


grep -B.png
前5行后5行
grep -C

5.标记匹配的文本行 grep --color=auto

grep -n -C 5 ‘match_pattern’ file_name  --color=auto ---前5行后5行并标记符合条件的文本
grep -n -C 5 'Method "saveData" failed for object com.fh.iasp.app.cm.client.v2.action' catalina.out  --color=auto

如图可以看书match_pattern 部分被标记了颜色


color=auto.png

6.以递归的方式查找符合条件的文件 grep -r

grep -r 'match_pattern'  path  ---path为空则默认当前目录
grep -r 'aaa' 

查找当前文件夹及子文件夹下所有符合条件的文本及文本行


grep -r.png

7.忽略大小写 grep -i

grep -r 'aaa'  -i

如图,对比一下结果就很清晰


grep -i.png

8.包含或排除指定文件 grep --include --exclude

--include file 仅在指定文件中查找,后面可接多个文件
--exclude file 排除指定文件

grep  'aaa' . -r  --include *.md  --include *.txt  ----尽在以md和txt结尾的文件中查找
grep  'aaa' . -r  --exclude *.md  ----在非md结尾的文件中查找
include-exclude.png

9.匹配多个文本 grep -e / -E

grep -e 'match_pattern1' -e 'match_pattern2' file  ---满足任一条件
grep -E 'match_pattern11|match_pattern2' file
 grep -e 'aa'  -e 'dd' . -r  --exclude *.md

满足任一条件就会显示
会显示包含 aa 或者 dd 的非md文件


grep -e.png
grep -E.png

可以看出,两个命令出来的结果是一样的

9.1如果要同时满足多个条件怎么搞?

解决方案:多用几个grep

grep 'aa'  . -r  --exclude *.md |grep 'dd'
image.png

10.排除指定文本 grep -v

grep -v ‘match_pattern’ file_name
grep -v -n 'aa' 111.txt

会显示不包含aa的所有文本行


grep -v.png
10.1如果要同时排除多个条件怎么搞?

解决方案:

grep -v -n 'aa\|d\|c' 111.txt

会排除aa d c的文本行


image.png

相关文章

网友评论

本文标题:一些linux命令学习(二)--grep命令

本文链接:https://www.haomeiwen.com/subject/tqwfqftx.html