文本处理三剑客之grep及正则表达式

文本处理三剑客之grep及正则表达式

 

文本处理工具:

 

Linux上处理文本三剑客:

    Grep:文本过滤器工具(模式:pattern)工具;

    Sed: stream editor,流编辑器;文本编辑工具;

    Awk: linux上实现为gawk,文本报告生成器(格式化文本);

 

    正则表达式:regual expresslon,REGEXP

        由一类特殊将字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能;

            分两类:

                基本正则表达式:BRE

                扩展正则表达式:ERE

 

         元字符:、(hello[[:space:]]\+\)\+

 

Grep : global search REgular expression and print out the line.

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

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

 

     正则表达式引擎;

 

     Grep [options] PATTERN [FILE….]

     Grep [options] [-e PATTERN | -f FILE] [FILE…..]

 

         OPTIONS:

             –color=auto: 对匹配到文本进行着色后高亮显示

             -i:忽略字符的大小写

             -0:只显示匹配到的字符本身

             -v:显示不能被模式匹配到的行

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

             -q:–quiet,–silent:静默模式,既不输出任何信息;

 

             -A#: after,后#行

             -B#:before,前#行

             -C#:前后#行

 

基本正则表达式元字符:

                     .   : 匹配任意单个字符;  

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

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

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

正则表达式

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

        *:匹配前面的字符任意次,包括0次 贪婪模式:尽可能长的匹配

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

        \?:匹配其前面的字符0或1次

        \+:匹配其前面的字符至少1次

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

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

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

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

 

v 位置锚定:定位出现的位置

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

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

        ^PATTERN$: 用于模式匹配整行

        ^$: 空行

        ^[[:space:]]*$ :空白行

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

        \> 或 \b:词尾锚定;用于单词模式的右侧

         \<PATTERN\>:匹配整个单词

 

 分组:\(\):将一个或多个字符捆绑在一起,当作一个整体进 行处理,如:\(root\)\+

     分组括号中的模式匹配到的内容会被正则表达式引擎记录 于内部的变量中,这些变量的命名方式为: \1, \2, \3, …

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

     实例:

         \(string1\+\(string2\)*\)

         \1: string1\+\(string2\)*

         \2: string2

      后向引用:引用前面的分组括号中的模式所匹配字符(而 非模式本身)

 

egrep及扩展的正则表达式 v

     egrep = grep -E

   vegrep [OPTIONS] PATTERN [FILE…] v

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

     字符匹配:

         . 任意单个字符

         [] 指定范围的字符

         [^] 不在指定范围的字符

    次数匹配:

         *:匹配前面字符任意次

         ?: 0或1次

         +:1次或多次

         {m}:匹配m次

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

 

     位置锚定:

         ^  :行首

         $  :行尾

         \<, \b :语首

         \>, \b :语尾 v

      分组:

          ()

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

       或者:

           a|b

           C|cat: C或cat

           (C|c)at:Cat或cat

             

原创文章,作者:xiaoqiang512,如若转载,请注明出处:http://www.178linux.com/33244

(0)
xiaoqiang512xiaoqiang512
上一篇 2016-08-12
下一篇 2016-08-12

相关推荐

  • 第五周作业

    1、简述rpm与yum命令的常见选项,并举例 rpm 命令 linux的的包管理器,用于对rpm软件包,进行安装、升级、卸载、查询、校验等操作。 使用语法: rpm [OPTIONS] [PACKAGE_FILE] 常用选项: 安装: -i,–install 升级: -U,–update,-F,–freshen 卸载: -…

    Linux干货 2017-12-14
  • N25-第四周作业

    第四周 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@zf ~]# cp -r /etc/skel/ /home/tuser1 [root@zf ~]# chmod -R&nbs…

    Linux干货 2016-12-21
  • Linux磁盘管理及其相关命令使用

    Linux磁盘及文件系统    CPU MEMORY(RAM) I/O    I/O:disks entercard    Disks:持久存储数据    接口类型:      IDE(ata):并行 133MB/s     &n…

    Linux干货 2016-08-26
  • 第一周作业

    1. 描述计算机的组成及其功能 CPU:CPU包括运算器和控制器,并采用大规模集成电路工艺制成的芯片,又称微处理器芯片。 运算器又称算术逻辑单元(Arithmetic Logic Unit简称ALU)。它是计算机对数据进行加工处理的部件,包括算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或、比较等)。 控制器负责从存储器中取出指令,并对指令进行译码;…

    Linux干货 2017-01-04
  • grep,egrp,fgrep 命令与正则表达式

    一 简介     grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 Unix的grep家族包括grep、egrep和fgrep…

    Linux干货 2016-01-19
  • lvs的四种调度类型和调度算法介绍

    lvs是linux内核级的负载均衡解决方案,作为netfilter的补充套件,其工作在INPUT hook上。 相比nginx等负载均衡解决方案的差异如下: lvs工作于内核空间,不受用户空间套接字和端口数量的限制,而且所有调度工作在内核空间完成,效率更高; nginx为七层负载均衡器,虽然通过stream模块也可以做到四层负载均衡,但是受到套接字数量限制,…

    Linux干货 2017-06-25