linux的grep

grep:
    linux上下文处理三剑客
        grep:文本过滤(模式:pattern工具)
        sed:文本编辑工具
        awk:文本报告生成器
        
    grep:
        作用:文本搜索工具,根据用户指定的模式对目标逐行进行匹配检查,打印匹配到的行
            模式:由正则表达式字符及文本字符所编写的过滤条件
            REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能
                分两类:
                    基本正则表达式:BRE
                    扩展正则表达式:ERE
                        grep -E,egrep
                    
                正则表达式引擎
                
                grep [options] PATTERN [FILE...]
                    
                    选项:
                        --color=auto:对匹配到的文本着色显示
                        -v:显示不能够pattern匹配到的行
                        -i:忽略字符大小写
                        -o:仅显示匹配到的字符串
                        -q:静默模式,不输出任何信息
                        -A #:后几行
                        -B #:前几行
                        -C #:前后各几行
                        
                        -E:使用ERE:
                            
        基本正则表达式元字符:
            字符匹配:
                .;匹配任意单个字符
                []:匹配指定范围内的任意单个字符
                [^];匹配指定范围外的任意单个字符
                    [:digit:],[:lower:],[:upper:],[:alpha:],[:alnum:],[:punct:],[:space:]
            匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
                *:匹配前面的字符任意次
                    例如:grep "x*y"
                        abxy
                        xay
                        xxxxxy
                        
                    贪婪模式
                .*:任意长度的任意字符
                \?:匹配其前面的字符0次或1次即前面的可有可无
                \+:匹配其前面的字符至少1次
                \{m\}:匹配前面的字符m次
                \{m,n\}:匹配前面的字符至少m次,至多n次
                    \{0,n\}:匹配前面的字符至多n次
                    \{m,\}:匹配前面的字符至少m次
                    
            位置锚定:
                ^:行首锚定,用于模式的最左侧
                $:行尾锚定,用于模式的最右侧
                ^PATTERN$:用于模式匹配整行
                    ^$:空行
                    ^[[:space:]]*$
                    
                \< 或 \b:词首锚定,用于单词模式的左侧
                \> 或 \d:词尾锚定,用于单词模式的右侧
                \<PATTERN\>:匹配整个单词

            分组:
                \(\):将一个或多个字符捆绑在一起,当做一个整体进行处理
                    \(xy)*ab
                    
                Note:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命令方式为:\1,\2
                    \1:从左侧起,第一个左括号以及与之匹配有括号之间的模式所匹配到的字符
                        \(ab\+\(xy\)*\)
                            \1 :ab\+\(xy\)*\
                            \2 :xy
                            
                后面引用:引用前面的分组括号中的模式所匹配字符(而非模式本身)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小宏运维有点菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值