grep命令及正则表达式

版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/83963875

    grep
        linux文本处理三剑客
        grep:文本过滤(模式:pattern)工具
            grep,egrep,fgrep
        sed:stream editor 文本编辑工具
        awk:Linux上实现gawk,文本报告生成器
        
        grep:global search regular expression and print out the line
        作用 文本搜索工具 根据用户指定的模式对文本进行匹配性检查,打印匹配到的行
        模式:正则表达式字符以及基本的文字字符所编写的过滤条件
        REGEXP:
        
        分类:
        基本正则表达式:BRE(basic regular expression)
        扩展正则表达式:ERE(extend regular expression)
        
        grep -E
        egrep
        
        
        grep [选项] 模式 [文件...]
            --color=auto  对匹配到的文本进行着色
            -v  显示没有匹配到的内容
            -o  仅显示匹配到的字符本身
            -i  忽略大小写
            -q  静默模式,不输出任何信息
                (可以使用$?查看搜索结果)
            -A 数字 显示匹配到的行已经后面的数字行
            -B 数字 显示匹配到的行已经前面的数字行
            -C 数字 显示匹配到的行以及行前的数字行
            
        基本正则表达式元字符
            字符匹配:
                . 匹配任意单个字符
                [] 匹配指定范围内的任意单个字符
                [^] 匹配范围之外的任意单个字符
                [:digit:] [:alpha:]
            匹配次数:用在要指定次数的字符后面,用于指定前面字符出现的次数
                * 匹配前面的字符任意次
                .* 任意长度的任意字符
                \? 匹配其前面的字符0或1次
                \+ 匹配其前面的字符至少一次
                \{m\} 匹配前面字符m次
                \{m,n\} 匹配前面的字符至少m次,至多n次
            位置锚定:
                ^ 行首锚定 用于模式的最左侧
                $ 行尾锚定 用于模式的最右侧
                ^模式$ 整行匹配模式
                ^$  空行
                \<  词首锚定 用于单词模式的左侧
                \>  词尾锚定 用于单词右侧
                \<模式\>  匹配整个单词
            分组
                \(\)  将一个或者多个字符捆绑在一起,当做一个整体进行处理
                \(xy\)* 连续任意次数的xy 
                
                分组括号中的模式匹配到的内容会被正则表达式引擎记录到内部的变量中,
                这些变量的命名为\1,\2,\3……
                \1 从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符
                
                后向引用:
                    grep "\(abc\)\+.*\1" test.txt
                        abc1234abc345
                    grep "\(abc\)\+.*" test.txt
                        abc1234abc345
                        abc1234bcd32421

猜你喜欢

转载自blog.csdn.net/qq_28189423/article/details/83963875