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
下一篇 2016-08-08

相关推荐

  • 第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或处理连接:接收请求或拒绝请求;     2)接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;接收请求的方式通常是并发访问响应模型;     3)处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息,解析后的报文…

    2017-03-27
  • DNS实验

      建立DNS服务器(正向解析) linux没有缓存 windows有dns缓存 权威结果,非权威结果 无论是正向解析数据库还是反向解析数据中  写管理员邮件地址或完整域名(FQDN)都要再后面加上点。否则系统会自动不上区域名称。 实验环境先清理防火墙规则,关闭防火墙. centos7 systemctl disabl…

    Linux干货 2016-11-01
  • 浅谈bash shell 变量

    一、简述 变量是指内存空间的命名,指向内存中一个或一组地址。bash shell中的变量属于弱类型变量,使用变量无需声明、不需要指定类型,默认为字符型变量。 二、变量命名、赋值、引用 (1)命名规则:     1.只能使用字母,数字,下划线;并且不能使用数字开头。     2.不…

    Linux干货 2016-08-15
  • LVM管理

    1、逻辑卷管理器(LVM) (1)逻辑卷管理器(LVM,logical volume manager)可以整合多个物理分区在一起,让这些分区看起来就像一个磁盘一样,而且,还可以在将来其他的物理分区或将其从这个LVM管理的磁盘中删除。这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,同时LVM还有快照功能。 (2)逻辑卷管理器的基本术语 物理…

    Linux干货 2016-09-01
  • PHP字符串的编码问题

        大家都知道,不同字符编码,其在内存占用的字节数不一样。如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节。     PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。     使用substr截取中…

    Linux干货 2015-10-22