linux运维正则表达式实战
1.什么是正则表达式?
简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @代表12345
通过正则表达式这些特殊符号,我们可以快速的过滤、替换需要的内容。
linux正则一般以行为单位处理的。
2.为什么要学习正则表达式?
再工作中,我们做linux运维工作,时刻面对着大量的日志,程序,命令的输出。
迫切的需要过滤我们需要的一部分内容,甚至是一个字符串。
3.理解两个误区注意事项:
a.正则表达式的应用非常广泛,存在于各种语言中,PERL,PHP,JAVA等。
我们今天给大家讲解的就是linux的正则表达式,系统运维工作中常用的正则表达式
常用的正则表达式的命令为grep(egrep),sed,awk。
linux的三剑客很牛,要想三剑客玩得更好,那就一定离不开正表达式。
b.linux正则表达式和我们命令行中其他的命令使用的通配符是有本质区别的。
4.实验的3个注意事项:
a.linux正则一般以行为单位处理的。
b.alias grep='grep --color=auto'
c.注意字符集,LC_ALL=C,不是必须
5.linux正则表达式细节
基于grep来讲的。
基础正则表达式:BRE(basic regular expression)
1)^word 表示搜索以word开头的内容。
2)word$ 表示搜索以word结尾的内容。
3)^$ 表示空行,不是空格。
4). 代表且只能代表任意一个字符。(当前目录,加载文件)
5)\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。
例如:\.只表示小数点,还原原始小数点的意义。
6)* 重复0个或多个前面的一个字符。不代表所有了。
7).* 匹配所有的字符。^.* 任意多个字符开头。
8)[abc] 匹配字符集合内任意一个字符[a-z]
9)[^abc] ^再中括号里面表示非,不包含a或b或c。
10){n,m} 重复n到m次,前一个字符。
{n,} 至少N次,多了不限。
{n} N次
{,m} 至多m次,少了不限。
注意:grep 要对{转义} \{\},egrep(grep -E)不需要转义
基础的正则就讲完了。
6.grep命令参数小结
-v 排除匹配的内容
-E 支持扩展的正则表达式
-i 忽略大小写
-o 只输出匹配的内容
--color=auto 匹配的内容显示颜色。
-n 再行首显示行号
7.取IP地址练习正则: