Shell 条件表达式的正则匹配

Shell正则表达式匹配
本文介绍如何在Shell脚本中使用=~运算符配合正则表达式进行字符串匹配,包括匹配特定模式的字符串及如何使用逻辑非进行排除匹配。通过示例展示了正确的语法和注意事项。

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 的逻辑非运算符,即感叹号 !,同时还要注意在感叹号前后添加空格。示例如下:

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

参考文献

Shell 特殊字符大全

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值