zoukankan      html  css  js  c++  java
  • 07 grep命令与正则表达式

     

    grep命令

      首先我们知道grep命令是用来做文件内容过滤的!如果你要在文件中查找一些对应的内容,我们如何来过滤找到其中我们需要符合条件的内容呢?grep命令结合正则表达式就可以实现;

      grep、egrep以及fgrep为一组命令,其中grep为命令本身,而grep -E(支持扩展的正则表达式),fgrep就是什么都支持(fast grep)在某些条件下实现快速查找;这里我们详细介绍grep命令;

      grep的使用方式:grep [OPTIONS] PATTERN [FILE...]

      pattern 模式:这里的模式,文本字符、正则表达式的元字符组而成的一个匹配条件,就是我们的pattern;

      grep是以块来匹配,只要这一行包含匹配字符,这一行的内容在默认情况下都会显示出来;

      -o  只有匹配的字符才会显示,不会再直接显示整行的内容;

      -v  反向选择,匹配pattern里面没有包含的内容

      -i  字母不区分大小写

      为了匹配更为复杂的内容,我们将pattern的内容结合正则表达式来进行匹配,下面我们就具体介绍下正则表达式:

    正则表达式

      Regular EXPression,REGEXP

      正则表达式就是使用一些元字符,他们不表示自己原本的意义,而是使用这些元字符的通配含义!【一定要区分正则表达式中的通配符,与文件名通配符的区别!】

      文件名通配符【非正则表达式】:

        *  表示任意长度的任意字符

        ?  任意的单个字符

        []  文件匹配范围

        [^]  文件匹配范围取反

      基本正则表达式通配符含义:

      1、字符匹配:

        .  表示任意单个字符

        *  匹配前面一个字符,任意长度

          a* 这就表示匹配a、aa、aaa等【.* 在正则表达式里面是匹配任意字符的意思】

        ?  匹配前面的字符1次后者0次【* 表示匹配前面的字符任意次】

        {m,n}  匹配前面的字符最少m次,最多n次

          {1,}  匹配前面的字符最少一次

          {0,3}  匹配前面的字符最少0次,最多3次

        []  匹配范围内的单个字符

          grep --color [ab] /etc/inittab  #匹配a或则b字符

        [^]  匹配范围外的字符

          grep --color [^ab] /etc/inittab  #匹配除了ab字符外的所有字符

      2、位置锚定符号:

        ^  锚定行首,指定文件以什么内容开头

        $  锚定行位,指定文件以什么内容结尾

        ^$  表示空白行

        <  其后面的任意字符必须作为单词的首部出现

        >  其后面的任意字符必须作为单词的尾部出现

          <root>  #以root开头的单词,且以root结尾的单词,abrroot、rootabc这两个字符串就无法匹配上;

          放在开头,则是<锚定单词首部,放在后面,则是>锚定单词尾部

      3、分组:

        ()  例如:(ab)*和ab*的区别,前者是ab一起重复任意次,而后者则是b重复任意次;前者将ab视为了一个整体!

        1  引用第一个左括号以及第一个右括号括起来的组参数

        2  引用第二个左括号的以及第二个右括号括起来的组参数

        3 、4、5 ... 依此类推

      

     

  • 相关阅读:
    Delphi开发组件
    WPF界面开发.NET环境该如何配置?不知道VS版本支持的看过来
    Map控件是如何支持矢量切片的?DevExpress WPF界面开发者必看!
    数据可视化新方式,SankeyDiagramControl类的使用你不能错过!(Part 1)
    VCL界面开发工具!DevExpress VCL v20.1.7全新出发
    如何使用自动生成的序列创建3D图表?DevExpress WPF有妙招(Part 3)
    如何使用Kendo UI在Vue.js中轻松构建UI组件?
    php结合redis实现高并发下的抢购、秒杀功能
    书写高质量SQL的30条建议
    php 通过openresty搭载负载均衡
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10343114.html
Copyright © 2011-2022 走看看