当前位置: 移动技术网 > 网络运营>服务器>Linux > Shell脚本中通过正则表达式匹配IP地址

Shell脚本中通过正则表达式匹配IP地址

2017年12月12日  | 移动技术网网络运营  | 我要评论
在运维场景下,我们经常需要在服务器上用正则表达式来匹配ip地址。 shell和其它编程语言一样,也可以使用正则分组捕获,不过不能使用 $1或\1这样的形式来捕获分组,可以

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

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

下面以ip="121.0.2.2"为例,shell脚本代码如下(当然,你要做成更通用交互式的脚本,可以通过expect来实现):

复制代码 代码如下:

#!/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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网