shell使用正则表达式过滤字符串中的ip地址

   

借用某网站的返回数据输出当前的ip地址:

curl -s http://myip.com.tw/ | grep -Eoe "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-
9]|25[0-5])" -Eoe '^(e|b)[[:lower:]]+[[:digit:]]+?'

这一段太长了,我一般这样写:’

var=`curl -s http://myip.com.tw/`
char="(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"
echo $var | grep -Eoe $char -Eoe '^(e|b)[[:lower:]]+[[:digit:]]+?'

直接输出纯净的ip地址,方便进行下一步操作:

27.213.127.33

发表评论