linux 正则表达式的例子,正则表达式技术实例

搜索热词

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

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

考题: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\}\) 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

总结

以上是编程之家为你收集整理的正则表达式技术实例全部内容,希望文章能够帮你解决正则表达式技术实例所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值