美文网首页Linuxlinux
Linux命令学习----grep命令

Linux命令学习----grep命令

作者: 扮猪老虎吃 | 来源:发表于2020-10-26 08:29 被阅读0次

    grep

        --Global Regular Expressions Print

    由来:

    1、UNIX系统中,搜索的模式被称为正则表达式(regular expressions)。

    2、为了要全面的彻底的搜索一个文件,有的用户在要搜索的字符串前加上前缀 global。

    3、一旦找到相匹配的内容,用户就像将其输出(print)到屏幕上


    作用:

           从一个或者多个文件中,搜索符合某一特定的字符模式(正则表达式)的内容并进行显示,此模式可以是单一字符、字符串、单词或句子。


    语法

    grep [选项] 模式 文件名

    // 搜索多个文件: grep命令只显示文件中发现匹配模式的文件名

    //搜索单个文件,grep 命令的结果将显示每一个包含匹配模式的行


    选项

    --color  颜色着重显示命中的内容
    -A n      after,显示命中内容的前面多少行
    -B n      before,显示命中内容的后面多少行
    -C n      center,显示命中内容的前后多少行

    -c    统计出现匹配的次数。
    -i     忽略大小写。
    -l     列出带有匹配行的文件名。
    -n    显示行号。
    -v    列出没有匹配模式的行。反选
    -w    把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。


    模式

    c*        将匹配 0 个(即空白)或多个字符 c(c 为任一字符)。
    .          将匹配任何一个字符,且只能是一个字符。
    [xyz]    匹配方括号中的任意一个字符。
    [^xyz]   匹配除方括号中字符外的所有字符。
    ^          锁定行的开头。
    $          锁定行的结尾。

    举例

    grep -l ‘boss’ *         显示所有包含boss的文件名。
    grep -n ‘boss’ file    在匹配行之前加行号。
    grep -i ‘boss’ file    显示匹配行,boss不区分大小写。
    grep -v ‘boss’ file    显示所有不匹配行。
    grep -q ‘boss’ file    找到匹配行,但不显示,但可以检查grep的退出状态。(0为匹配成功)
    grep -c ‘boss’ file    只显示匹配行数(包括0)。
    grep “$boss” file    扩展变量boss的值再执行命令。
    ps -ef|grep “^*user1′′     搜索user1的命令,即使它前面有零个或多个空格。
    ps -e|grep -E ‘grant_server|commsvr|tcpsvr|dainfo’ 查找多个字符串的匹配(grep -E相当于egrep)

            利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

    相关文章

      网友评论

        本文标题:Linux命令学习----grep命令

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