文本处理三剑客之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

相关推荐

  • ☞rsyslog

    rsyslog 概述 rsyslog支持的facility与priority facility:设施、信道: priority:级别 rsyslog程序 配置文件 配置日志记录级别和路径 配置日志记录在远程rsyslog server rsyslog server端 rsyslog client端 测试远程服务器是否记录日志 rsyslog记录在MySQL中…

    Linux干货 2016-10-16
  • 计算机基础与Linux初识

    一、 计算机的组成及其功能。      计算机五大组成部件:运算器、控制器、存储器、输入设备、输出设备。其中CPU主要由运算器及控制器组成。      1、运算器:进行算数运算、逻辑运算,对数据进行加工处理。      2、控制器…

    2017-07-02
  • Homework Week-2 Linux文件管理

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理工具:cp, mv, rm         cp命令:copy  源文件  目标文件                单源复制:cp [O…

    Linux干货 2016-08-22
  • Linux用户与权限管理

    由于Linux是多用户、多任务系统,出于一些需要,当我们创建的文件希望对一部分用户开放,对一部分用户隐藏的时候应该怎么办呢?这样的话,就需要涉及到Linux系统中对用户以及对文件权限的管理。 一、相关文件 在Linux中,一切配置文件都是以文本文档的方式来保存的,同样用户的信息也保存在系统的一些文件中,其位置为/etc/passwd。此文件只有root用户具…

    Linux干货 2016-08-05
  • Python入门之闭包,匿名函数,过滤器,映射器,折叠

    在学习python函数的过程中,函数的高阶应用包括闭包lambda函数,过滤器等都让我头痛不已.接下来我把课堂中听到的笔记进行整理,再写一遍,希望在提醒自己的同时也能帮助到别人. 首先,我们来看一下什么是闭包,闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见…

    Linux干货 2015-12-19
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@UncleZ ~]# who | cut -d' ' -f1 | uniq -c 2、取出最后登录到当前系统的用户的相关信息。 [roo…

    Linux干货 2016-12-17