zoukankan      html  css  js  c++  java
  • 9_grep及正则表达式

    文本查找的需要
    grep,egrep,fgrep

    grep:Global Research。根据模式,去搜索文本,并将符合模式的文本行显示出来
    Pattern:文本字符和正则表达式的元字符组合而成匹配条件

    grep:
      grep [options] PATTERN [FILE...]
      [root@localhost ~]# grep 'root' /etc/passwd
      root:x:0:0:root:/root:/bin/bash
      operator:x:11:0:operator:/root:/sbin/nologin
      [root@localhost ~]#
      -i:不考虑大小写
      --color:颜色高亮
      -v:反向查找,显示没有被模式匹配的行
      -o:只显示被模式匹配的字符串

    正则表达式:REGular EXPression,简写为REGEXP
    元字符:
    .:匹配任意单个字符
    []:匹配指定范围内的任意单个字符
    [^]:匹配指定范围外的任意单个字符

    字符个数:
    *:匹配其前面的字符任意次
      a*b:的意思就是a可以出现任意次(包括0次),随后跟了个b。比如 b、ab、aab、
      a.*b:这才表示任意长度的任意字符
    .*:任意长度的任意字符
    默认情况下,正则表达式工作在贪婪模式下。就是能匹配到哪就匹配到哪,尽可能长的去匹配。比如上面的a.*b:amnb是可以的,amnbmnbmnb也是可以匹配到的
    ?:匹配其前面的字符一次或0次
    {m,n}:匹配前面的字符至少m次,至多n次

    位置锚定:
    ^:锚定行首,此字符后面的任意内容必须出现在行首
    $:锚定行尾,此字符前面的任意内容必须出现在行尾
    ^$:空白行

    <或者:锚定词首,其后面的任意字符必须作为单词的首部出现
    >或者:锚定词尾,其前面的任意字符必须作为单词的尾部出现

    分组:
    ():分组
      后向引用
      1:引用第一个左括号以及与之对应的右括号所包括的所有内容
      2:
      3:
      ...


    grep:使用基本正则表达式定义的模式来过滤文本的命令
      -i
      -v
      -o
      --color
      -E:使用扩展正则表达式
      -A #:其后(#是数字,数字几就是其几行)
      -B #:其前
      -C #:其前后

    扩展正则表达式:

    字符匹配:
    .
    []
    [^]

    次数匹配:
    *:
    ?:
    +:匹配其前面的字符至少一次,
    {m,n}:扩展正则表达式的花括号不需要使用反斜线

    位置锚定:
    ^
    $
    <
    >

    分组:
    ():分组
    1,2,3,...

    或者
    |:or的意思,a|b是a或者b

    C|cat:C或cat。或者是整个两边都或
    (C|c):利用分组匹配小c或大C


    grep -E = egrep


    fgrep:fast,不支持正则表达式

  • 相关阅读:
    201671010461张仲桃 实验三
    通读《构建之法》之后的问题
    201671010402-陈靖 实验十四 团队项目评审&课程学习总结
    201671010402-陈靖 实验四附加实验
    201671010402-陈靖——英文文本统计分析》结对项目报告
    201671010402 词频统计软件项目报告
    201671010402-陈靖 实验三 作业互评与改进
    读《现代软件工程——构建之法》所遇到的问题
    201671010403 陈倩倩 实验十四 团队项目评审&课程学习总结
    201671010403 陈倩倩 实验四附加实验
  • 原文地址:https://www.cnblogs.com/xian-luo/p/10167955.html
Copyright © 2011-2022 走看看