首页 操作系统如何在shell脚本中通过正则表达式匹配IP地址?

如何在shell脚本中通过正则表达式匹配IP地址?

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

运维场景下,我们经常需要在服务器上用正则表达式来匹配IP地址。

shell和其它编程语言一样,也可以使用正则分组捕获,不过不能使用 1或\1这样的形式来捕获分组,可以通过数组{BASH_REMATCH}来获得,如{BASH_REMATCH[1]},{BASH_REMATCH[N]}

下面以ip=”121.0.2.2″为例,shell脚本代码如下(当然,你要做成更通用交互式的脚本,可以通过expect来实现):
[code lang=”shell”]#!/bin/bash
ip="121.0.2.2"
if [[ ip =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5]) ]]
then
echo "Match"
echo {BASH_REMATCH[1]}
echo
{BASH_REMATCH[2]}
echo {BASH_REMATCH[3]}
echo
{BASH_REMATCH[4]}
else
echo "Not match"
fi[/code]

本文链接:http://www.yunweipai.com/4660.html

网友评论comments

发表评论

邮箱地址不会被公开。

暂无评论

Copyright © 2012-2021 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部