Shell条件表达式的正则匹配

版权声明:感谢您对博文的关注!校招与社招,有需要内推腾讯的可以QQ(1589276509)or 微信(louislvlv)联系我哈,期待您的加入。 https://blog.csdn.net/K346K346/article/details/87194719

Shell编程中,我们可以使用双中括号运算符[[]]和=~来判断字符串是否匹配给定的正则表达式,例如匹配以lvlv结尾的字符串:

filelist="lvlvcheck dablelvlv checklvlv"
for file in $filelist
do 
	if [[ $file =~ lvlv$ ]]
	then
		echo $file
	fi
done

脚本运行输出:

dablelvlv 
checklvlv

注意事项:if [[ $file =~ lvlv$ ]] 中注意有五个空格,而且正则表达式不能使用单引号或者双引号,否则会被当做普通字符串。

这里要吐槽一下,Shell真的很强大,但是语法又过于苛刻晦涩,少一个空格有时都能让人抓狂,所以书写时要多加留意,严格遵循Shell语法要求。

如果想使Shell if不匹配指定的正则表达式,可以使用Shell的逻辑非运算符感叹号!,同时还是要注意添加5个空格,示例如下:

if [[ ! $file =~ check$ ]]

参考文献

[1]Shell特殊字符大全

猜你喜欢

转载自blog.csdn.net/K346K346/article/details/87194719