grep和统配符介绍

grep,egrep,fgrep


grep:根据模式搜索文本,并将符合模式的文本行显示出来.

pattern:文本字符和正则表达式的元字符组合而成匹配条件.


grep [OPTIONS] PATTERN [FILE...]


-i, 忽略大小写

--colour 以彩色的匹配字符显示结果.

-v:反相显示,显示没有被模式匹配的行.

-E:使用扩展正则表达式

-A #:显示配平到的行和和后面的紧接二行.

-B #:显示配平到的行和和前面的紧接二行.

-C #:上下各二行.



globe

*:任意长度的任意字符

?:任意单个字条

[]:指定范围内

[^]:指定范围外



正则表达式: REGular EXPression,REGEXP

元字符

.:任意单个字符

[]:匹配指定范围内的任意单个字符

[^]:匹配指定外的任意单个字符

    字符集合:[:digit:]

        [:lower:]

        [:upper:]

        [:punct:]

        [:space:]

        [:alpha:]

        [:alnum:]

匹配次数(贪婪模式):

*:匹配其前面的字字符任意次

.*:任意长度任意字符.

\:转意符

?:匹配其前面的字符一次或0次,使用时需要加\,\?:代表使用?

\{m,n\}:匹配其前面的字条至少m次,至多n次.

     \{1,\}:至少出现一次,多了不限

    \{0,3\}:至少不限,最多3次.

位置锚定:

^:锚定行首,此字符后的任意内容必须出现在行首

$:锚定行尾,此字符前的任意内容必须出现在行尾

^$:表示空白行.


\<或\b:其后面的任意字符必须作为单词的首部出现

\>或\b:其前面的任意字符必须作为单词的毛部出现

\<root\>:文本中必须包含单个root单词

分组:

\(\)

    \(ab\)*:字符ab出现任意次数.多用于向后引用.

    \1:引用第一个左括号以及与之对应的右括号所包括的所有内容

    \2:引用第二个左括号以及与之对应的右括号所包括的所有内容

    \3:引用第三个左括号以及与之对应的右括号所包括的所有内容

grep '\([0-9]\).*\1$' /etc/inittab


如文本中有如下结果则显示

#   5 - X11

l 0:0:wait:/etc/*** 0


正则表达式

    Basic REGEXP:基本

    Extended REGEXP:扩展

扩展正则表达式:

.:任意单个字符

[]:范围内的

[^]:范围外的

次数匹配:

*:其前字符任意次

?:其前字符0次或任意次,不用加\

+:其前字符至少一次

{m,n}:


位置锚定:


^:行首

$:行尾

\<:词首

\>:词尾

分组:

():分组

\1,\2,\3,....

或者:

a|b: a或者b or

C|cat=C或cat 
(C|c)at=cat或Cat
grep -E=egrep












你可能感兴趣的:(grep和统配符介绍)