Shell指令碼中通過正規表示式匹配IP位址

2022-10-06 20:18:25 字數 598 閱讀 7028

在運維場景下,我們經常需要在伺服器上用正規表示式來匹配ip位址。

shell和其它程式語言一樣,也可以使用正則分組捕獲,不過不能使用 $1或\1這樣的形式來捕獲分組,可以通過陣列$來獲得,如$,$

下面以ip="121.0.2.2"為例,shell程式設計客棧指令碼**如下(當然,你要做成更通用互動式的指令碼,可以程式設計客棧通過expe來實現):

複製** **如下:

#!/bin/bash

ip="121.0.2.2"

if [[ $ip =~ ^([0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|1[程式設計客棧0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]

then

echo "match"

echo $

echo $

echo $

echo $

else

echo "not match"

fi

本文位址:

shell指令碼 正規表示式

一 正規表示式 正規表示式是用來描述字串排列和匹配模式的一種語法規則,是字串的模式分割 匹配 查詢和替換操作。正規表示式是包含匹配,操作字串,如grep,awd,sed,而萬用字元是完全匹配,如ls,find,cp 正則的與萬用字元的不同,如正規表示式aa 第二個a不起作用,意思是以a開頭的,而萬用...

shell 指令碼 正規表示式

字元類 character class 如上例的x和 y,它們在模式中表示乙個字元 但是取值範圍是 一類字 符中的任意乙個。數量限定符 quantifier 郵件位址的每一部分可以有乙個或多個x字元 ip位址的每一部 分 可以有1 3個y 字元位置限定符 anchor 部分,用普通字元 和 隔 開 ...

shell指令碼 正規表示式

正規表示式分為基礎正則和擴充套件正則,都是為了匹配符合預期要求的字串 只需要記住,對檔案內容或是展示文字的操作都是正則,而對目錄或檔名的操作則都是萬用字元 例如find指令 擴充套件正則包含基礎正則,而且多出了 四個指令 注意這裡的 要和管道符分開 擴充套件正則不需要像基礎正則一樣對某些符號進行轉義...