关闭

linux学习之正则表达式

标签: linux正则表达式工作
24人阅读 评论(0) 收藏 举报
分类:

正则表达式在工作中经常用到。正在表达式是对字符串进行处理的工具。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.*$来匹配尾内容。中间要匹配的内容用















0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:712次
    • 积分:102
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档