不管是在Linux下还是在windows下,以及一些编程语言中都要用到正则表达式,这足以说明正则表达式的重要性,今天就让我们来熟悉一下Linux下的grep的正则表达式。

    

    首先什么是正则表达式:正则表达式就是一套处理大量字符串而定义的规则和方法。利用正则表达式可以快速过滤、替换需要的内容。Linux政策表达式是以行为单位处理的。


    其次为什么学习正则表达式:Linux运维工作,时刻面临着大量日志、程序、命令的输出,熟练地掌握正则表达式可以提高你的工作效率。


    基于grep的正则表达式:

1.^ : ^word表示搜素以word开头的内容。

2.$ : word$表示搜素以word结尾的内容。

3.^$: $表示文章的结尾,而^$表示以结尾开头的内容,意思就是空行作为开头

      例子:grep "^$" test 就表示输出test文件里面的空行的所有内容。

            grep -v "^$" test 就表示输出test文件里面的不包含空行的所有行。

4.: .代表且只能代表任意一个字符

      例子: grep "old.y" test 表示查找test文件中的前面为old,结尾为y的单词。

             grep ".$" test 表示将test文件中的以任意字符结尾。

5.\ : \代表转义字符,让有特殊身份意义的字符,脱掉马甲,还原原型

      例子:\.在这里的点不在代表任意一个字符的意思,而是一个普通的点。

            grep "\.$" test 表示过滤除test文件中的以点结尾的行。

6.* :表示重复0个或多个前面的一个字符

      例子:"0*" 表示重复前面0字符的行。

7..* : 表示匹配所有的字符

      例子:grep ".*" test 表示过滤出重复前面任意一个字符的行。

8.[abc]:表示匹配字符集中的任意一个字符

9.[^abc]:^在这里表示非,即不包含a或b或c的字符串

          grep "[^0-9]" test 匹配不是数字的行。

10.{n,m}:表示重复n到m次前一个字符


#完结


附:

grep的一些参数:

grep -v 表示排除匹配的内容

     -E 支持扩展的正则表达式

     -i 忽略大小写

     -o 表示只输出匹配的内容

     -n 显示行号