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 "Not match"
fi
相关文章
利用linux的timerfd_create实现计时器示例分享
这篇文章主要介绍了利用linux的timerfd_create实现计时器示例,需要的朋友可以参考下2014-02-02linux下wc统计文件的个数、行数、字数、字节数等信息方法
下面小编就为大家带来一篇linux下wc统计文件的个数、行数、字数、字节数等信息方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-05-05linux shell脚本对未定义变量的判断以及if的用法详解
今天小编就为大家分享一篇linux shell脚本对未定义变量的判断以及if的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-07-07linux echo命令以及linux echo命令提示权限不够的解决办法
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法。下面通过本文给大家介绍linux echo命令以及linux echo命令提示权限不够的解决办法,感兴趣的朋友一起看看吧2017-09-09在linux上定期执行命令、脚本(cron,crontab,anacron)
在linux下,如果想要在未来的某个时刻执行某个任务,并且在未来的每一个这样的时刻里都要执行这个任务。这篇文章主要介绍了在linux上定期执行命令、脚本(cron,crontab,anacron)的相关知识,需要的朋友可以参考下2018-07-07
最新评论