grep与正则表达式结合的使用并举例说明!

 

 

一、grep 使用正则表达式定义的模式来过滤文本的命令,grep的工作模式是在贪婪模式下。

   命令格式  grep [options] PATTERN [FILE...]

    [options]参数

         -i 忽略字符大小写的差别

-v 反转查找  

--color 匹配到的用颜色表达出来。

-E    后面使用扩展正则表达式 grep -E=egrep扩展搜索

-A  # 显示匹配到的行 而且也显示匹配到的行的后几行也显示。

-B  # 显示匹配到的行 而且也显示匹配到的行的前几行也显示。

-C  # 显示匹配到的行 而且也显示匹配到的行的前后各几行也显示。

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

    . :匹配任意单个字符

 

二、正则表达式:regular expression regexp

    元字符 :     

. :匹配任意单个字符

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

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

[[:space:]]:空白字符 [:space:]单括号是字符集合使用的时候要用两个括号

[[:punct:]];标点符号

[[:lower:]];小写字母

[[:upper:]]:大写字母

[[:digit:]]:数字  

[[:alpha:]]:大小写字母

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

 

匹配次数

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

              .*: 匹配任意长度任意字符。

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

(这个反斜线是转译)\{m,n\}:匹配其前面的字符至少m次 ,之多n次。

         例子:\{1,\}:至少一次多了不限

         例子: \{0,3\}最大三次至少0次

位置锚定:

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

  例子:grep ‘^root’ /etc/passwd

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

  例子:grep ‘y$’ /etc/inittab

             ^$:锚定空白行

  例子; grep ‘^$’ /etc/inittab   

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

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

           \<\>:匹配单词出现 必须是一个单词出现      

       分组:

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

  后向引用:也就是说前面出现是是root,后面出现的也必须是root

           \2:                  

三、举例说明

    1、查看/etc/inittab文件中r..t的字符的行。

 

yyr

2、查看/etc/passwd文件中包含root的字符的行。

 

yyr

3、查看/etc/passwd文件中包含root的字符的行并且高亮显示出来。

 

4、查看/etc/inittab文件中r.*t的字符的行。

 

5、查看/etc/passwd文件中不包含root的字符的行。

 

 

 

 

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