美文网首页测试员的那点事软件测试程序员
一些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