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

相关推荐

  • N25–第十二周作业

    1、  请描述一次完整的http请求处理过程; (1)建立和处理连接:接收请求或者拒绝请求; (2)接收请求:接收来自于网络上的主机请求报文中对某特定的资源的一次请求的过程; (3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息 (4)访问资源:获取请求报文中请求的资源 (5)构建响应报文; (6)发送响应报文; (7)记录…

    2017-03-28
  • 马哥教育网络班22期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     [root@zabbix ~]# who|awk '{print $1}'|sort| uniq 2、取出最后登录到当前系统的用户的相关信息。 &nb…

    Linux干货 2016-08-23
  • raid5创建

    创建分区并改类型 创建raid5   创建把文件系统 生成配置文件    

    2017-12-17
  • 网络班26期-第1周课程作业

    1、描述计算机的组成及其功能? (1)CPU:计算机的大脑,计算机的运算,命令的控制功能,寄存器及缓存都由CPU功能承担; (2)内存:RAM,随机访问存储器,计算机的另一个核心功能,系统指令存放及运行的基础。 (3)输入设备:人工给计算机下指令的设备,例如鼠标,键盘等; (4)输出设备:计算机输出人工输入的执行命令的结果;例如,音响,显示屏等; …

    Linux干货 2017-01-10
  • 在CentOS中获取命令帮助

    在CentOS中获取命令帮助    在使用和学习CentOS系统中,当我们遇上不熟悉的命令却又需要了解它的详细用法的时候,我们需要获取帮助。除了借助他人和搜索引擎之外,自己通过查看系统帮助文档来解决问题是很重要的。下面就来介绍如何获取帮助以及简单的解决思路:    一、如何获取命令帮助 Linux提供多层次的命令帮助:…

    Linux干货 2016-07-27
  • N27—第十周作业

    N27_第十周作业 1、请详细描述Centos系统的启动流程(详细到每个过程系统做了哪些事情) 详情请参考http://www.178linux.com/85713 2、为运行于虚拟机上的Centos 6添加一块新的硬盘,提供两个主分区; (1)为硬盘新建两个主分区;并为其安装grub (2)为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供…

    Linux干货 2017-10-21