2015-09-22 147 views
0

在bash中,如何檢查字符串變量是否與給定的正則表達式匹配?它應該是最快和最便攜的(OS X,Linux)方法。bash中的正則表達式匹配

基本上我想:

if [ $MY_VAR matches '[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}' ]; then 
    echo 'matched' 
fi 

回答

3

這將是,

if [[ $MY_VAR =~ [A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12} ]]; then 
    echo 'matched' 
fi 

中,爲了做一個確切的字符串匹配,需要添加錨點。

$MY_VAR =~ ^[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}$