当前位置: 首页 > news >正文

如何在 Bash 中使用 =~ 操作符 ?

Using the =~ Operator in Bash

在 Bash 脚本世界中,有各种操作符可供我们使用,使我们能够操作、比较和测试数据。其中一个操作符是 =~ 操作符。这个操作符经常被忽视,但功能非常强大,它为我们提供了一种使用正则表达式匹配字符串模式的方法。

=~ 操作符语法

语法很简单,=~ 操作符在 [[ ]] 中使用,字符串和正则表达式是操作数,如下所示

[[ string =~ regular_expression ]]

如果字符串匹配模式,操作符返回 0 (true),如果不匹配,则返回 1 (false)

Example 1: 简单模式匹配

让我们从一个基本的例子开始。有一个字符串 “Welcome to Bash scripting”,我们想看看这个字符串是否包含“Bash” 这个词。

#!/bin/bashstr="Welcome to Bash scripting"if [[ $str =~ Bash ]]; thenecho "The string contains the word Bash."
elseecho "The string does not contain the word Bash."
fi

Example 2: 正则表达式匹配

=~ 操作符允许正则表达式模式匹配。假设我们想要检查一个字符串是否包含数字。

#!/bin/bashstr="Order 5 pizzas"if [[ $str =~ [0-9]+ ]]; thenecho "The string contains a digit."
elseecho "The string does not contain a digit."
fi

Example 3: 提取正则匹配

=~ 操作符也可用于提取匹配项。假设有一个日期字符串,我们想提取 day 、month 和 year

#!/bin/bashdate="23-05-2023"
regex="([0-9]{2})-([0-9]{2})-([0-9]{4})"if [[ $date =~ $regex ]]; thenday=${BASH_REMATCH[1]}month=${BASH_REMATCH[2]}year=${BASH_REMATCH[3]}echo "Day: $day, Month: $month, Year: $year"
fi

我的开源项目

酷瓜云课堂-开源知识付费解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)
http://www.xdnf.cn/news/399313.html

相关文章:

  • 单词短语0512
  • C++色彩博弈的史诗:红黑树
  • 关于大语言模型的困惑度(PPL)指标优势与劣势
  • 菊厂0510面试手撕题目解答
  • spdlog日志格式化 标志全指南
  • Java详解LeetCode 热题 100(14):LeetCode 56. 合并区间(Merge Intervals)详解
  • 【网络安全】SQL注入
  • pdf 不是扫描件,但却无法搜索关键词【问题尝试解决未果记录】
  • 用短说社区搭建的沉浸式生活方式分享平台
  • Redis+Caffeine构建高性能二级缓存
  • Python邮件处理(使用imaplib和email库实现自动化邮件处理)
  • Kubernetes控制平面组件:Kubelet详解(一):API接口层介绍
  • 自主添加删除开机启动项
  • tinyint(3)数据类型讲解
  • stm32之BKP备份寄存器和RTC时钟
  • 基于Python的高效批量处理Splunk Session ID并写入MySQL的解决方案
  • Hadoop 的代理用户(Proxy User)​ 功能解释
  • 配置hosts
  • 推理加速新范式:火山引擎高性能分布式 KVCache (EIC)核心技术解读
  • 深入理解Embedding Models(嵌入模型):从原理到实战(下)
  • 【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • SpringBoot校园失物招领信息平台
  • Shell脚本编程3(函数+正则表达式)
  • [特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
  • Modbus协议介绍
  • springboot旅游小程序-计算机毕业设计源码76696
  • Unity ML-Agents实战指南:构建多技能游戏AI训练系统
  • 在Ubuntu系统下编译OpenCV 4.8源码
  • react-diff-viewer 如何实现语法高亮
  • 一小时学会Docker使用!