shell中的“正则表达式”和“通配符”

一、通配符

键盘上的符号,用来匹配符合条件的文件名【过滤文件名】 用来模糊搜索文件

  1. * :匹配任意多个字符或者0个字符

              find /home -name "a*.out".

     2. ? :匹配任意一个字符

               ls a??.out

     3. [ ] :匹配括号范围内的任意一个字符

               ls   a[1234].out                ls   a[123][12][456].out

     4. [^] :匹配括号范围外的任意一个字符

               ls   a[^0-9].out

 

二、shell正则表达式 【过滤文本内容】

     1、作用:用来匹配文件中符合规则的字符串

           sed  、grep 、awk等命令都支持正则表达式

      2、分类:1>.基本的正则表达式    Basic regEX BRES

                    2>.扩展的正则表达式    Extended RegEX ERES

                    3>.Perl 正则表达式 Perl RegEX PRES

      3、类型

             1) * :匹配前一个字符0次或多次

                    egrep   “中国*”   a.out

             2) + :匹配前一个字符1次或多次 【需要转义】

                    egrep   "中+“   a.out

                    grep   -E   "中+“   a.out

                    grep   "中\+“   a.out

              3) ? :匹配前一个字符0次或1次 【需要转义】

                     sed   -nE   '/中国?/p'   a.out

               4).  :匹配任意一个字符(一个点)

                    ..  :匹配任意两个字符(两个点)

                      sed   -n   '/^123.*abc$/p'   a.out

                5)^  : 匹配行首

                6) $ :匹配行尾

                7) {n} :匹配前一个字符n次 【需要转义】

                    sed  -n   '/^123.\{2,5}abc$/p'   a.out

                    sed   -nE   '/^123.{2,5}abc$/p'   a.out

                 8) {n,} :匹配前一个字符大于等于n次 【需要转义】

                 9) {m,n} :匹配前一个字符至少m次,之多n次 【需要转义】

                 10) [ ] :匹配范围内的任意一个字符

                  11) [ ^] :匹配范围外的任意一个字符

                  12) ( ) :匹配一个单元 【需要转义】

                  13) \b :匹配单词边界

                  14) | :交替运算符 【需要转义】

                            X|Y :要么匹配X,要么匹配Y

     4、实战

          1>过滤手机号:

                    egrep  -o  "(135|155|177)[0-9]{8}"   a.out

            或     egrep  -o  1[(35)|(55)|(77)][0-9]{8}   a.out

           2>过滤身份证号:

                    egrep  -o  411[0-9]{14}[0-9x]   a.out

           3>过滤ip地址:

                    egrep   -o   "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"   文件名

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值