grep基本正则表达式以及扩展正则表达式

基本正则表达式:

grep:Globel serach REgular expression and print out the line

作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行

模式:由正则表达式的元字符及文本字符所编写出的过滤条件

grep选项:

          -l:lgnorecase,忽略字符的大小写;

          -o:仅显示匹配到的字符串本身;

          -v: –invert-match:显示不能被模式匹配到额行;

          -E:支持使用扩展的正则表达式元字符;

          -q:–quit,–slient:静默,不输出任何信息

          -A#:after:匹配本行及后#行

          -B#:before:匹配本行和前#行

          -C#:context,本行和前后各#行

基本正则表达式元字符:

          字符匹配:

               .:匹配任意单个字符        grep "r..t" /etc/passwd

              []:匹配指定范围内的任意单个字符

              [^]:匹配指定范围外的任意单个字符

                       [:digit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

           匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面的字符出现的次数

                    *:匹配其前面的字符人一次;0,1,多次;

                    如: grep "x*y"

                                abxy

                                 aby

                                 xxxxxy

                                 yab

                     .*:匹配任意长度的任意字符

                     \?:匹配其前面的字符0次或1次;即前面的字符是可有可无的;

                     \+:匹配其前面的字符1次或多次;即前面的字符要出现至少1次;

                     \{m\}:匹配前面的字符m次

                      \{m,n\}:匹配其前面的字符至少m次,至多n次;

                             \{0,n\}:至多n次

                              \{m,\}:至少m次

           位置锚定:

                      ^:行首锚定,用于模式的最左侧

                      $:行尾锚定;用于模式的最右侧

                       ^PATTERN$:用于PATTERN来匹配整行

                            ^$:空白行;

                           ^[[:space:]]*$:空行或包含空白字符的行;

                         单词:非特殊字符组成的连续字符串(字符串)都称为单词;

           \<或\b:词首锚定,用于单词模式的左侧 

                    

            分组及引用:

 \(\):将一个或多个字符捆绑在一起,当做一个整体进行处理;

               \(xy\)ab:将xy当做一个整体进行匹配

 Note:分组括号中的模式匹配到的内容会被正则表达式引擎自动记录在内部的变量中

           如:

              \1 :模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符

              \2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符

              \3:

相当于:(a+b-c)*d)

             如:lovers.txt

                       he loves hist lover

                       he likes his lover

                       she liker her liker

                       she loves her liker

        ~]#grep "\(l..e).*\1" lovers.txt

    后向引用:引用前面的分组括号中的模式所匹配到的字符:


扩展正则表达式:

 egrep:

            支持扩展的正则表达式实现类似于grep文本过滤功能;grep -E

             egrep [options] patern [file..]

                      选项:

                              -i,-o,-q,-A,-B,-C

                              -G:支持基本正则表达式

扩展正则表达式的元字符:

                   字符匹配:

                            .:任意单个字符

                           []:指定范围内的任意单个字符

                          [^]:指定范围外的任意单个字符

                   次数匹配:

                          *:任意次,0,1或多次;

                          ?:0次或1次,其前的字符是可有可无的;

                          +:其前字符至少1次

                         {m}:其前的字符m次

                        {m.n}:至少m次,至多n次;

                                     {0,n} 

                                     {m,}

                    位置锚定:

                           ^:行首锚定;

                           $:行尾锚定;

                         \<,\b:词尾锚定;

                         >\,\b:词尾锚定

                    分组及引用:

                              ():分组;括号内的模式匹配的字符会被记录于正则表达式引擎的内部变量中

                          后向引用:\1,\2,…

                             或

                                  a|b:a或者b

                                 C|cat:C或cat

                                (c|C)at:cat或Cat

原创文章,作者:因为有你,如若转载,请注明出处:http://www.178linux.com/31525

(1)
因为有你因为有你
上一篇 2016-08-08 20:10
下一篇 2016-08-08 20:10

相关推荐

  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~]# fdis…

    Linux干货 2017-07-04
  • Linux命令小总结

                     随着对Linux学习的深入,Linux命令也越来越多的。虽然我们可以通过man等帮助查询我 忘记的命令,但写脚本本质是由命令有序的堆砌而运行的。下面让我来总结一番我们学习过的命令 &nb…

    2017-07-30
  • linux中文本处理工具

      对于linux来讲,文本处理是非常重要的,因为linux系统就是由无数的文件组成的,linux中一切皆文件。文件的处理方式有很多种,所以就有众多的文本处理工具,各自作用于不同的文本处理方式。 一、查看文件命令:    cat命令:处理显示文件内容,不改变原文件    cat命令常用于查看文件内容,也可通过…

    Linux干货 2016-08-08
  • iptables

    练习:基于状态放行telnet, ftp, ssh, http, samba, icmp等服务 (1) 对本机的ping请求每分钟不得超出20个 (2) 每客户端对本机的ssh的并发连接数不得超过3个 (3) 本机的telnet服务仅允许工作时间内访问 [root@node1 ~]# vim iptables.sh iptabl…

    Linux干货 2016-10-22
  • Tomcat及Tomcat集群

    Tomcat集群实现的三种方式 配置 Tomcat1 配置环境 ip a add 192.168.88.101/24 dev ens33 yum install ntpdate -y ntpdate 172.16.0.1 安装java yum install java-1.8.0-openjdk-devel -y 安装tomcat yum install t…

    Linux干货 2017-07-08
  • RPM与YUM命令异同详解

    RPM和YUM都是用来安装程序的工具,但是它们有太多相似的用法以至于有事很难分清应该哪个那就来一起详细的了解一下他们的功能及用法,以及他们的相同以及不同之处。 RPM 软件包管理器功能:安装,卸载,升级,查询,校验,打包,数据库管理RPM在安装时不能处理程序之间复杂的依赖关系RPM可以验证软件包来源的合法性、完整性。常用选项: -i:表示安装。(常用:-iv…

    2017-06-18