正则表达式之grep与egrep

一、正则表达式之grep与egrep
  正则表达式:就是用一类字符所书写的模式(pattern)来描述选择的条件;
  grep:默认支持基本正则表达式
  egrep:扩展正则表达式

二、grep,egrep基本语法

2.1  grep说明
    grep [参数] "模式(pattern)" 文件(FILE)
        --color=auto :给被匹配到的字符串加上颜色;
        -v :反向选取,只显示不符合模式的行;
        -o:只显示被匹配到的字符串,而不是整行;
        -i:不区分大小写字母;
        -E:使用扩展正则表达式;
            (grep -E = egrep)

        -A #:显示匹配到的后面的#行(eg: -A 2 );
        -B #:显示匹配到的前面#行;
        -C #:显示匹配到的前后#行;

2.1.1) 基本正则表达式元字符
^:锚定行首符合条件的内容;
    eg: grep "^ROOT"  /etc/passwd
$:锚定行尾符合条件的内容;
    eg: grep "ROOT$" /etc/passwd

  注意:锚定行首行尾  ^ROOT$
        锚定空白行      ^$

.:匹配任意单个字符;
*:匹配紧挨在前面的字符任意次(匹配0次,1次,2次...);
.*:匹配任意长度的任意字符;
    eg: grep "ab.*ab" File

[]:匹配指定范围内的任意单个字符;
    eg: grep "[abc]" FILE
[^]:匹配范围外的任意单个字符;
[a-z]:匹配a到z小写字母任意单个字母;
[A-Z]:匹配A到Z大写字母任意单个字母;
[0-9]:匹配0到9数字任意单个数字;
[:digit:]:所有数字,相当于0-9
[:lower:]:所有小写字母,相当于a-z
[:upper:]:所有大写字母,相当于A-Z;
[:alpha:]:所有的字母
[:alnum:]:所有字母,数字
[:space:]:空白字符
[:punct:]:所有标点符号
    eg: grep "^[0-9][a-z]$" FILE

\?:匹配紧挨在前面的字符0次或1次;
\{m,n\}:匹配其前面的字符至少m次,至多n次;
\{0,n\}:匹配至多n次,0-n次;
\{m,\}:匹配至少m次;
    \{m\}:精确匹配m次;
     eg:grep "a\{1,5\}" FILE

\<:锚定词首
    eg: grep "\<b" FILE

\>:锚定词尾
    eg: grep "b\>" FILE

\(\):分组
    eg: grep \(ab\){1,3\} FILE


2.2 egrep说明:

grep -E=egrep

2.2.1) 扩展正则表达式egrep元字符扩展,其余同上
+:匹配前面的字符至少1次;
    eg egrep "a+" FILE
?:匹配紧挨在前面的字符0次或1次;

    eg grep-E "a?b" FILE


{m,n} :至少m次,至多n次;
    eg:egrep "a{1,5}" FILE

():分组,支持引用\1,\2
    eg: egrep "(ab){1,3}.*\1" FILE

a|b: 二选一,或者;
    eg:egrep "^s|S" FILE

你可能感兴趣的:(正则表达式之grep与egrep)