zoukankan      html  css  js  c++  java
  • 13 shell脚本--005grep和正则表达式

    1、grep程序

      grep:文本 行过滤工具

      sed:文本 行编辑器(流编辑器)

      awk:报告生成器,(做文本输出格式化)

      

      grep包含3个命令:grep、egrep、fgrep,他们是用来进行 行模式(pattern)匹配的

        egrep = grep -E   //使用扩展的正则表达式进行匹配

        fgrep = fast grep  //只使用文件通配符进行匹配

        grep   //默认使用正则表达式进行文件匹配

      grep的用法:

        grep 【option】... PATTERN [filename]

      grep的常见选项:----option

        -E     //支持使用扩展的正则表达式(regexp)

        -P     //使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed awk grep使用的regexp引擎都不相同)

        -i      //忽略大小写

        -v     //进行反选

        -o     //仅仅输出匹配的内容(默认输出的是匹配到的行)

        -n     //显示行号

        --color=auto     //语法着色

        -w     //匹配固定单词

        <[0-9]{2,3}>

             <[0-9]{2,3}

      PATTERN(pattern)--正则表达式

        作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要 进行转义;

        回顾文件通配符:* ? [ ] [^ ]

        1、字符匹配

          .    //任意一个字符-------->?

          [ ]  //范围内的任意一个字符---------->[ ]

          [^ ]  //范围外任意一个字符---------->[^ ]

          字符类:[0-9] = [[:digit:]]

              [0-9][a-z][A-Z] = [[:alnum:]]

                 [a-z] = [[:lower:]]

              [A-Z] = [[:upper:]]

              [~!@#$%^&*] = [[:punct:]]

              [[:space:]]

        2、次数匹配

          *     //匹配前面的(紧挨着的字符)0次到无数次

          ?   //匹配前面的(紧挨着的字符)0次到1次

          +     //匹配前面的(紧挨着的字符)1次到无数次     ( * = ?+

          {m}  //匹配前面的字符m次

          {m,n}  //匹配前面的字符m到n次

          {0,n}    //匹配前面的字符0到n次

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

        3、位置锚定

          ^     //锚定行首

          $     //锚定行尾

              //锚定词首和锚定词尾

          >    //锚定词尾

             <    //锚定词首       < oot>

        4、分组

          abc*   abccccc   abc我们要看成一个整体

          ()   示例:(abc)*  abcabcabc  abccc

          **分组特性:默认情况下,Linux系统会分为指定变量,变量的表示形式为1 2 3(后向引用)

          补充:扩展的正则表达式,

              【标准正则表达式的都去掉】

              分组:()后向引用1  2  3...... 

              或:       |    grep -E "(svm|vms)" /proc/cpuinfo     //查看cpu的虚拟功能

  • 相关阅读:
    有向图的强连通分量——tarjan
    最小生成树——Kruskal算法
    最小生成树——Prim算法
    递归的正确切入方法
    大整数类概述
    初涉算法——STL初步
    初涉算法——C++
    ACM常用模板
    ACM入门步骤(一)
    划分树
  • 原文地址:https://www.cnblogs.com/wx00/p/11349943.html
Copyright © 2011-2022 走看看