萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> Shell腳本中通過正則表達式匹配IP地址

Shell腳本中通過正則表達式匹配IP地址

   這篇文章主要介紹了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

copyright © 萬盛學電腦網 all rights reserved