不管是在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 忽略大小写
-n 显示行号