linux下分割字符串已经如何正则匹配日期与IP

今天项目需要在linux下将一个字符串中的ip与日期提取出来,因为查了挺多资料,记到这里方便以后查看。

linux下分割字符串

linux下分割字符串可以使用命令expr,expr有许多功能,具体的使用方法可以使用man查看,这里只介绍分割字符串的功能。

expr "/data/backup/192.168.128.88/test/capitalallocation/consume/201602/08/18.log" : '.*([0-9]\{6\}\/[0-9]\{2\}\).*'

这段的作用是用字符串中,将201602/08这串字符串取出,因为在linux的shell下,没法只用\d等高级用法,因此只能使用如上方式,至于开头的.*和结尾的.*一定要加上,不然这样就无法匹配了。同理,IP也是用这种规则匹配出来

expr $1 : '.*\(\/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*' | sed 's/\///'

这样取出的结果是192.168.128.88。后面的sed是用来将前面那段拿出来的/192.168.128.88中的“/”给删除,如果没有将前面的“/”拿出来,则会取出“2.168.128.88”因为前面的.*会将“19”也包括了,就只剩下最少匹配的“2”,这一段暂时还没有研究出来如何最多匹配,要是有知道的欢迎留言告知~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值