linux学习之正则表达式

正则表达式在工作中经常用到。正在表达式是对字符串进行处理的工具。java,javascript,linux,ptyhon,都能看见其身影。

在这里做一个小小的总结。


一.正则表达式的认识

^:   ^word  匹配所有以word开头的字符串 开始的意思。

$:   word$ 匹配所有以word结尾的字符串 结束的意思。

^$  两个连着用 匹配以结束为开头的所有串。只有空行能够匹配。


. :   点代表匹配任意一个且只有一个字符。

* :  星号代表匹配前面0个或多个字符,空字符也能匹配。

\ :  反斜线是转义正则表达式里特殊字符的意思

.*:  经常看见两个组合起来使用。是表示任意一个字符可以出现0次或多次。意思就是匹配任意的字符串(包括空字符串)


{n,m}: word{1,4} 表示work出现次数 >= 1 且 <= 4, 至少出现一次。之多出现4次 这样的串。 


二.正则表达式的使用

使用正则表达式对工作非常有帮助。以获取ip地址为例

1.获取IP地址:ifconfig eth0

2.获取IP地址所在行: ifconfig eth0 | grep 'inet addr:'
3.去除IP地址前面内容:ifconfig eth0 | grep 'inet addr:'|sed 's#^.*r:##g'
4.去除IP地址后面内容:ifconfig eth0 | grep 'inet addr:'|sed 's#^.*r:##g'|sed 's#Bc.*$##g'
5.去除IP地址中的空格:ifconfig eth0 | grep 'inet addr:'|sed 's#^.*r:##g'|sed 's#  Bc.*$##g'

也可以采用ifconfig eth0 | sed -n 's#^.*addr:\(.*\)  Bc.*$#\1#gp' 直接完成。

总结
使用sed -n 参数去掉sed默认输出格式。’sgp‘p的意思是使用指定的输出格式。sed -n "s###gp"
采用 ^.*XXXX这个种固定格式来匹配头内容。
使用XXXX.*$来匹配尾内容。中间要匹配的内容用















  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值