linux运维正则表达式技术

linux运维正则表达式实战视频观看地址
http://edu.51cto.com/course/course_id-1959.html
linux运维正则表达式实战
html

1.什么是正则表达式?
简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @表明12345 
经过正则表达式这些特殊符号,咱们能够快速的过滤、替换须要的内容。
linux正则通常以行为单位处理的。linux

2.为何要学习正则表达式?
再工做中,咱们作linux运维工做,时刻面对着大量的日志,程序,命令的输出。
迫切的须要过滤咱们须要的一部份内容,甚至是一个字符串。git

3.理解两个误区注意事项:
a.正则表达式的应用很是普遍,存在于各类语言中,PERL,PHP,JAVA等。
咱们今天给你们讲解的就是linux的正则表达式,系统运维工做中经常使用的正则表达式
经常使用的正则表达式的命令为grep(egrep),sed,awk。
linux的三剑客很牛,要想三剑客玩得更好,那就必定离不开正表达式。正则表达式

b.linux正则表达式和咱们命令行中其余的命令使用的通配符是有本质区别的。express

4.实验的3个注意事项:
a.linux正则通常以行为单位处理的。
b.alias grep='grep --color=auto'
c.注意字符集,LC_ALL=C,不是必须bash

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地址练习正则:ide

sed基本语法:
s替换
g全局
-i 修改文件
-n 取消默认输出
 p 打印内容
-r 支持扩展正则linux运维

考题:
ifconfig eth0:
         inet addr:10.0.0.7  Bcast:10.0.0.255  Mask:255.255.255.0
目标:10.0.0.7
过滤思想:
目标以前的内容“         inet addr:” 就用 ^.*addr:
目标结尾的内容"  Bcast:10.0.0.255  Mask:255.255.255.0"   就用Bc.*$
命令实战:
特殊直接sed取行*:
[root@oldboylinux oldboy]# ifconfig eth0|sed -n '2s#^.*addr:##gp'|sed 's#  Bc.*$##g'
10.0.0.7
[root@oldboylinux oldboy]# ifconfig eth0|sed -n '2s#^.*addr:\(.*\)  Bc.*$#\1#gp'
10.0.0.7
[root@B ~]# ifconfig eth0|sed -rn '2s#^.*addr:(.*)  Bc.*$#\1#gp'
10.0.0.8
[root@oldboylinux oldboy]# ifconfig eth0|sed -n '2s#^.*addr:\([0-9]\{,3\}\.[0-9]\{,3\}\.[0-9]\{,3\}\.[0-9]\{,3\}\)  Bc.*$#\1#gp'
10.0.0.7学习

考题:
请用ifconfig,输出ip及广播地址
sed  -n 's#\(dddd\)\(ffff\)#\1\2#gp' 一样适合grep。
命令:
[root@B ~]# ifconfig eth0|sed -nr 's#^.*dr:(.*) [a-zA-Z].*t:(.*)  Ma.*$#\1\2#gp'   
10.0.0.8 10.0.0.255

扩展的正则表达式:grep -E 以及egrep
后期有机会再分享吧!
下面是后补的,讲座没时间讲了。
8.扩展的正则表达式:ERE1)+ 重复一个或一个以上前面的字符。2)? 重复0个或一个0前面的字符。3)|用或的方式查找多个符合的字符串4)() 找出 “用户组”字符串。另一个了解的知识:posix方括号字符集(挺鸡肋的知道就得)       [:alnum:]             [:lower:]          [:xdigit:]       [:alpha:]             [:print:]            [:blank:]       [:blank:]             [:punct:]       [:cntrl:]             [:space:]       [:graph:]             [::upper:]5)man bash   man grep

相关文章
相关标签/搜索