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

相关推荐

  • Linux运维之路基础学习四

    当文件的权限不能满足某个用户时,ACL是一个好办法

    Linux干货 2017-12-03
  • 用户组和权限管理

    一、3A认证     Authentication:认证     Autherization:授权     Accoutiong|Audition:审计 二、用户user      linu…

    Linux干货 2016-08-04
  • Ansible Playbook Roles 和 Include 声明-手稿

    Edit Ansible Playbook Roles 和 Include 声明 Ansible Playbook Roles 和 Include 声明 1. Introduction 2. Task Include Files And Encouraging Reuse 3. Roles 4. Role Default Variables 5. Role …

    Linux干货 2016-03-28
  • linux 中的 文本处理工具

    文本处理工具  在linux系统中 文本工具有很多 现在具体介绍几款 如 抽取文本的工具 和文件三剑客  文件内容:less和 cat   文件截取:head和tail   按列抽取:cut   按关键字抽取:grep egrep 首先 有 查看文件的cat tac  cat [OPTION]&#8…

    Linux干货 2016-08-11
  • Linux第二周总结

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。 Cp、mv、rm cp命令: copy 单源复制:cp [OPTION]… [-T] SOURCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中; 如果DEST存在: 如果DESST是非目录文件;则覆盖目标文件; 如果DEST是目录文件…

    2017-07-09
  • Linux中查看文本工具

    一、文件查看 文件查看命令:cat,tac,rev,我们重点详解cat命令 cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的type命令 我们可以理解cat命令是复制标准输入到标准输出 cat命令选项: cat [OPTION]… [FILE]… -E:显示行结束符$   &nbs…

    Linux干货 2016-08-07