linux_grep和正则表达式

grep以及正则表达式:
  grep,egrep,fgrep
    grep:根据模式,搜索文本,并将符合模式的文本行显示出来
       模式(pattern):文本字符和正则表达式的元字符组合而成匹配条件

       grep [options] pattern [filename,…]
         -i: 忽略大小写
         --color: 颜色高亮显示模式匹配的
         -v: 显示没有被匹配到的行
         -o: 只显示被模式匹配到的字符串
         -E: 使用拓展正则表达式
         -A n: 显示匹配的行,并显示之后的n行
         -B n: 显示匹配的行,并显示之前的n行
         -C n: 显示匹配的行,并显示之前以及之后的各n行
 

  正则表达式: regular expression(regexp)
    基本正则表达式:
       元字符:
         .  : 匹配任意单个字符
         [] : 匹配指定范围内的任意单个字符
         [^]: 匹配指定范围外的任意单个字符
         [:digit:] : 匹配数字 [0-9]
         [:lower:] : 匹配小写字母 [a-z]
         [:upper:] : 匹配大写字母 [A-Z]
         [:punct:] : 匹配标点
         [:space:] : 匹配空格
         [:alnum:] : 匹配数字和字母 [0-9a-zA-z]
         [:alpha:] : 匹配字母 [a-zA-Z]
     
       量词 匹配次数:(贪婪模式)
         *  : 匹配其前面的字符任意次
         .* : 任意长度的任意字符
         \? : 匹配其前面的字符1次或0次
         \{m,n\} : 匹配其前面的字符至少m次,至多n次
            \{1,\} : 至少一次,不限多次   
            \{0,3\} : 最多三次

       分组:
         \(\) :
         \(ab\)* : ab为一个整体,ab出现任意次数
            后向引用:
            \1: 第一个左括号以及与之对应的右括号所包含的所有内容
              \(l..e\).*\1       \2
       
       位置锚定:
         ^ : 行首锚定符,此字符后面的任意内容必须出现在行首  ^x
         $ : 行尾锚定符,此字符前面的任意内容必须出现在行尾   x$
         ^$ : 表示空白行

         \< | \b : 词首锚定符,其后面的任意字符必须作为单词的首部出现
         \> | \b : 词尾锚定符,其前面的任意字符必须作为单词的尾部出现
         \<root\> : 表示整个root 单词
       

  扩展正则表达式: 与基本正则表达式想比较,明显的区别是拓展正则表达式对一些符号不需要使用"\"进行转义直接使用即可;未做说明部分表示与上述基本正则表达式用法一样
    字符匹配:
       . :
       [] :
       [^] :

    量词,次数匹配:
       * :
       ? :
       + : 匹配其前面的字符至少一次 {1,}
       {m,n} :

    位置锚定:
       ^ :
       $ :
       \< :
       \> :

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

    或者:
       | : or
            C|cat      C或者cat
            (C|c)at     Cat或者cat



posted @ 2016-01-05 18:09  Mr.hale  阅读(164)  评论(0编辑  收藏  举报