文本处理三剑客之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 09:02
下一篇 2016-08-12 09:02

相关推荐

  • MongoDB

    Edit MongoDB 手册 MongoDB 手册 第一章 Introduction MongoDB入门学习目录(建议) Databases Collections Documents 第二章 部署安装 1. Import the MongoDB public key 2. Configure the package management system (…

    Linux干货 2017-04-08
  • CentOS 7上的性能监控工具

    Linux中基于命令行的性能监控工具:dstat、top、netstat、vmstat、htop、ss、glances 1、dstat – 多类型资源统计工具(需配置epel源)   该命令整合了vmstat,iostat和ifstat三种命令。同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能够使你对比和整…

    Linux干货 2016-09-07
  • 【招聘】天津/赞普科技股份有限公司/Linux系统运维工程师/6-7k/五险一金

    天津赞普科技股份有限公司——简称赞普科技,成立于2003年,坐落于天津市滨海高新区,是一家专业的互联网综合服务商,主营数字网络建设、数据接入及增值服务和智能化网络产品及服务。历经11年的发展,赞普科技已成长为高新区科技型小巨人企业、国家高新技术企业,专注于移动互联与大数据、云计算、商业WIFI行业的领军者。     赞普科技计划…

    Linux干货 2015-12-03
  • 分布式存储介绍、FastDFS 部署

    什么是分布式系统? 简单来说,多台主机提供同一个服务,例如负载均衡集群,就是一个分布式系统。 什么是分布式存储? 看看某宝,上面多少图片,如果使用传统的单机存储,需要准备多大的磁盘空间?读写性能如何提升? 上图就是一个分布式存储的结构,此处存储节点不在是磁盘,而是多个主机组成,多个主机内部通信实现数据副本,客户端发来的请求发往前端,前端分发至后端,有点像负载…

    2017-03-08
  • Linux计划任务和进程

    一、进程管理 1.进程简介 一个程序对应多个进程;一个进程对应一个程序。 2.进程状态的查看与控制 查看进程状态 w 查看个别用户的进程 eg: w userName list-info JCPU: PCPU: WAHT: from: IDLE: 用户空闲时间 load average: ps -aux -a: 显示所有用户的进程 -u:显示用户名和启动时间…

    2017-09-09
  • 马哥教育网络班21期+第一周课程练习

    一、计算机的组成及其功能 自上个世纪40年代开始截止到目前,我们所有的计算机包括手持的智能终端设备,它们整个组织体系设备都是遵循冯诺依曼体系结构。 现代计算机设备的组成部分: 运算器、控制器、存储器、输入设备、输出设备 控制器:控制器是整个计算机的枢纽,一般是控制计算机整个部件之间协调的,比如运算器要想运算的话,首先得从存储器中取出数值。或者输入设备输入数。…

    Linux干货 2016-07-07