zoukankan      html  css  js  c++  java
  • 09grep

    基本框架:

    a)         grep命令

    b)         正则表达式

    c)         grep中使用正则表达式

    d)         vi中使用正则表达式

                       

    9.1   grep命令

          命令格式:grep  [option]  pattern  +  文件列表

          常用的option:

                       -E     用扩充的正则表达式进行模式匹配

                       -i      不区分大小写

                       -n     显示行号

                       -v     反向匹配(匹配不符合要求的)

                       -l     返回匹配到的文件名称

                       -r     递归搜索

    在多个文件中进行查找时,文件列表中可以使用通配符*

    9.2   正则表达式

          定义:描述具有某种特征的字符串的表达式。

          正则表达式包含普通字符和特殊字符(元字符)。

          元字符集分为两类:基本的元字符集和扩充的元字符集。

    9.2.1基本的元字符集:

    u  ^   行首开始匹配

    u  $   行尾进行匹配

               找空行的方法: grep  –n  ^$  filename

    u  <  从单词的开头进行匹配

               3种方法:(若查找public)

                  grep  -n  ‘<public’   filename(多用单引号的方法)

                  grep  -n  “\<public”  filename

                  grep  -n   \<public  filename

    ²  执行机理:

    grep命令中的pattern字段先被shell解析,然后再将解析后的结果提交给grep字段。

    单引号可以抑制shell对pattern字段特殊字符的解析,将pattern字段原封不动的提交给grep 。

    而双引号只能抑制部分符号(比如说括号),但它不能抑制和$等。

    Shell和grep都将视为转义字符(特殊字符)。

    u  >  从单词的末尾进行匹配

    .   对单个字符进行匹配

                查找只有一个字符的行:   grep  -n  ^.$  filename

    u  [str]    对str中的任意单个字符进行匹配

    u  [^str]   对任意不在str中的单个字符进行匹配

    u  [a-b]    对a到b之间的任何字符进行匹配

    u      抑止后面的一个字符的特殊含义

    查找的三种方法:

                 1.   grep   -n  ‘\’    filename(多用单引号的方法)

                 2.   grep   -n  “\\”  filename

                 3.   grep   -n   \\   filename

    u  *   对前一项进行0次或多次重复匹配

    9.2.2扩展的元字符集:

     使用扩展的元字符集grep的格式为:  grep  -E   或为   egrep

    u  +       对前一项进行1次或多次重复匹配

    u  { j }     对前一项进行j次重复匹配

    u  { j , K }   对前一项进行j到k次重复匹配

    u  s|t      匹配s项或t项中的一项

    u  (exp)    将exp 作为单项处理

    9.3   vi中使用正则表达式

         例子: 删除aa到zz的所有字符:           1,$  s/aa.*zz//

                将整个文件中所有的and替换成&:     1,$  s/and/ &/g

                在每一行的行首插入字符串new:     1,$  s/^/new

                在每一行的末尾插入字符串@@:     1,$  s/$/@@

                去掉所有行首的数字字符:           1,$  s/^[0-9][0-9]*//

  • 相关阅读:
    C#操作指针
    C#使用指针表达式
    C#指针转换
    C#基础指针类型
    线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(二)
    线性规划中的单纯形法与内点法(原理、步骤以及matlab实现)(一)
    201521123079 《Java程序设计》第1周学习总结
    201521123069 《Java程序设计》 第2周学习总结
    201521123069 《Java程序设计》第1周学习总结
    201521123004 《Java程序设计》第2周学习总结
  • 原文地址:https://www.cnblogs.com/xieyang/p/3919532.html
Copyright © 2011-2022 走看看