shell中正则表达式的使用

时间:2022-12-10 21:34:20

下面介绍shell中正则表达式的两种使用方法。

使用方法一:

#赋值给变量var
read var
#定义regex正则表达式
regex="[0-9]"

if [[ $var =~ $regex]];then
#match
#do something
fi

例如,对输入的内容进行匹配,要求必须是0-9之间的数字:

#读取输入
read input

regex="[0-9]"

if [[ $input =~ $regex ]];then
echo "match"
else
echo "dismatch"
fi

对于方法一,如果正则表达式中含有类似“\d”等转义字符时,是无法匹配。这样就要用到第二种方法了。

使用方法二:

read var
regex="[a-z]"

if [ `echo $var | grep -P $regex` ];then
echo "match"
else
echo "dismatch"
fi

注意:
-P参数:
使用Perl的正则表达式解析。