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

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

参考文献

[1]Shell特殊字符大全

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序生活

机器学习(十五) K-means 算法

已知观测集 (x1,x2,...,xn),其中每个观测都是一个 d-维实向量,k-平均聚类要把这 n个观测划分到k个集合中(k≤n),使得组内平方和(WCS...

16120
来自专栏CRPER折腾记

JS题目之数组数据拆分重组转成嵌套对象,让脑细胞活跃下

29910
来自专栏钱塘小甲子的博客

python的三种字符串格式化方法

        刚入门python的同学,特别是,没有系统的学习过python,而是学过别的语言,直接上手python的同学,怕是还不是很了解python强大的...

10240
来自专栏钱塘小甲子的博客

Cython入门到放弃(二)

上一篇文章讲了Cython的使用流程,没有具体展开讲别的,例子也很简单。今天首先使用一个官方文档上使用Cython的例子,然后抛出几个连续的小demo,看看Cy...

13940
来自专栏iOS技术

美团 EasyReact 源码剖析:图论与响应式编程

18 年 7 月美团开源了 EasyReact,告知 iOS 工程师们响应式编程和函数式编程并非不可分离,似乎一出来就想将 ReactiveCocoa 踢出神坛...

10830
来自专栏Zaqdt_ACM

湖南大学第十四届ACM程序设计新生杯 F. Find the AFei Numbers(数位dp)

题目链接:https://ac.nowcoder.com/acm/contest/338/F

14530
来自专栏noteless

JDBC 异常简介 jDBC简介(六)

JDBC中定义了SQLException,用于描述数据库相关操作中可能出现的异常情况。

15620
来自专栏Zaqdt_ACM

Codeforces Beta Round #51 D. Beautiful numbers(数位dp+思维)

题目链接:http://codeforces.com/contest/55/problem/D

7720
来自专栏Zaqdt_ACM

HDU 2089 不要62(数位dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089

21840
来自专栏JMCui

状态模式.

 我们以一个网约车订单场景来做一个简单的 Demo 示例。订单分为四个状态 —— New(新建)、Running(进行中)、Cancel(取消)、End(结束)...

10140

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励