五.Linux之grep命令

作者: Dakini_Wind | 来源:发表于2019-01-26 21:04 被阅读0次

    grep命令选项

    -c  只输出匹配行的数量
    -i  搜索时忽略大小写
    -h 查询多文件时不显示文件名
    -l 只列出符合匹配的文件名,不列出具体的行
    -n 列出所有匹配的行,并显示行号
    -s  不显示不存在或无匹配文本的错误信息
    -v 显示不包含匹配文本的所有行
    -w  匹配整词
    -x  匹配整行
    -r  递归搜索
    -q  禁止输出任何结果,以退出状态表示搜索是否成功
    -b 打印匹配行距文件头部的偏移量,以字节为单位
    -E 支持拓展的正则表达式
    -F  不支持正则表达式,按照字符串的字面意思进行匹配
    

    grep选项demo

    • 无选项
    $ grep 11 1.txt 
    11:a
    
    • -c选项
    $ grep -c 1 1.txt 2.txt 
    1.txt:1
    2.txt:1
    
    • -n选项
    $ grep -n 11 *
    1.txt:1:11:a
    new1.txt:1:11:a
    sort1.txt:1:11:a
    
    • -v选项
    $ grep -v 11 1.txt 
    2:b
    2:e
    5:e
    5:e
    6:o
    5:e
    3:p
    04:p
    
    • -i选项
    $ grep -i A 1.txt 
    11:a
    
    • -h选项
    $ grep 11 *
    1.txt:11:a
    new1.txt:11:a
    sort1.txt:11:a
    
    • -l选项
    $ grep -l 11 *
    1.txt
    new1.txt
    sort1.txt
    
    • -s选项
    $ grep  123 123.txt 
    grep: 123.txt: 没有那个文件或目录
    $ grep  -s 1 123.txt
    
    • -w选项
    $ grep 11:* 1.txt 
    11:a
    $ grep -w 11:* 1.txt 
    11:a
    

    !!按照我的理解此处不应该搜索到才对

    • -x选项
    $ grep  '2:d' 2.txt 
    2:d
    2:dd
    2:d  d
    $ grep -w '2:d' 2.txt 
    2:d
    2:d  d
    $ grep -x '2:d' 2.txt 
    2:d
    
    • -E选项
      等价于egrep
      拓展正则表达式,添加以下符号:“|”,“+”,“?”,“()”
      “|“ :或
      “+” : 重复前面的字符串至少一次
      ”?“ :表示重复0-1次前面的字符
    $ grep -E '(1|2|):' 2.txt 
    1:c
    2:d
    2:dd
    2:d  d
    :ddddddd
    

    grep与其他命令组合使用

    $ ps -ef | grep fitcx
    # 查找指定进程
    
    $ ls -l | grep .*.txt
    # 查找当前目录txt文件
    
    $ find . -name "*.txt" -exec grep -l -n "11" {} \;
    # 查找包含“11”的txt文件
    ./1.txt
    ./sort1.txt
    ./new1.txt
    
    

    相关文章

      网友评论

        本文标题:五.Linux之grep命令

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