grep及正则表达式

  

文本查找的需要:

grep,egrep,fgrep


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

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


grep [options] PATTERN [FILE...]   

    -i:忽略大小写

    --colo[u]r:加颜色

    -v:反向查找(显示没有被模式匹配到的行)

    -o:只显示被模式匹配到的字符串



正则表达式:REGular EXPression, REGEXP

元字符:

.  :匹配任意单个字符

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

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

   字[:space:]:空白字符

   符[:punct:]:标点符号

   集[:lower:]:小写字母

   合[:upper:]:大写字母

     [:alpha:]:大小写字母

     [:digit:]:数字

     [:alnum:]:数字和大小写字母



匹配次数(贪婪模式):

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

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

?     :匹配其前面的字符1次或0次

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



位置锚定:

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

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

^$:空白行


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

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


\ 以单词为root



分组:

\{ \}:

    如 \{ab\}*

    后向引用 

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

    \2:

    \3: 





正则表达式:

   Basic     REGEXP:基本正则表达式

   Extended  REGEXP:扩展正则表达式



扩展正则表达式:egrep=grep -E


字符匹配:

.  :匹配任意单个字符

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

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

   字[:space:]:空白字符

   符[:punct:]:标点符号

   集[:lower:]:小写字母

   合[:upper:]:大写字母

[:alpha:]:大小写字母

[:digit:]:数字

[:alnum:]:数字和大小写字母


次数匹配:

   * :匹配其前字符任意次

   ? :匹配其前字符0次或1次

   + :匹配其前字符至少一次

{m,n}:匹配前面的字符至少m次,至多n次


  

位置锚定:

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

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

^$:空白行


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

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


\ 以单词为root



分组:

( ):分组

\1, \2, \3, ... 向后引用



或者:

|:或者


C|(c)at



fgrep:快速grep  --不支持正则表达式