Shell脚本中通过正则表达式匹配IP地址
在运维场景下,我们经常需要在服务器上用正则表达式来匹配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"Notmatch"
fi
热门推荐
10 舞蹈老师晚安祝福语简短
11 文艺结婚祝福语短语简短
12 对女友的简短祝福语
13 老哥出门祝福语简短语
14 俄语祝福语贺卡文案简短
15 新年祝福语简短给孩子
16 提早庆祝生日祝福语简短
17 诗词送行祝福语大全简短
18 回家长的祝福语简短