在運(yùn)維場(chǎng)景下,我們經(jīng)常需要在服務(wù)器上用正則表達(dá)式來匹配IP地址。
shell和其它編程語言一樣,也可以使用正則分組捕獲,不過不能使用 $1或\1這樣的形式來捕獲分組,可以通過數(shù)組${BASH_REMATCH}來獲得,如${BASH_REMATCH[1]},${BASH_REMATCH[N]}
下面以ip="121.0.2.2"為例,shell腳本代碼如下(當(dāng)然,你要做成更通用交互式的腳本,可以通過expect來實(shí)現(xiàn)):
復(fù)制代碼 代碼如下:
#!/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
您可能感興趣的文章:- shell 正則表達(dá)式詳細(xì)整理
- Shell正則表達(dá)式之grep、sed、awk實(shí)操筆記
- Shell if中的正則表達(dá)式使用詳解
- Shell正則表達(dá)式驗(yàn)證IP地址
- PowerShell中正則表達(dá)式使用例子
- linux shell 路徑截取正則表達(dá)式
- Shell正則表達(dá)式學(xué)習(xí)筆記
- PowerShell中使用正則表達(dá)式匹配字符串實(shí)例
- 詳解Linux--shell腳本之正則表達(dá)式
- shell高級(jí)學(xué)習(xí)之正則表達(dá)式