深入理解Linux =~

一、基本用法

在Linux中,=~是用于正则表达式匹配的符号,其基本用法是:

[[ $variable =~ pattern ]]

其中$variable是待匹配的字符串,pattern是正则表达式。如果匹配成功,则返回0,否则返回1。

例如:

if [[ "hello world" =~ o.*o ]] 
thenecho "Matched"
elseecho "Not matched"
fi

该段代码将输出“Matched”,因为“hello world”中的“o”和“o”之间满足“o.*o”这个正则表达式。

通常在if语句中使用=~符号。

除了=~符号,Linux还有很多其他的正则表达式符号,如^表示匹配开头,$表示匹配结尾,*表示匹配0个或多个前面的字符,+表示匹配1个或多个前面的字符,?表示匹配0个或1个前面的字符,等等。

二、高级用法

Linux中,=~符号不仅可以用于匹配,还可以用于分组和替换。

1. 分组

在正则表达式中,可以使用()来表示一个分组。

例如:

if [[ "123abc" =~ ([0-9]+)([a-z]+) ]]
thenecho "The number is ${BASH_REMATCH[1]}"echo "The letter is ${BASH_REMATCH[2]}"
elseecho "Not matched"
fi

该段代码将输出“The number is 123”和“The letter is abc”,因为正则表达式“([0-9]+)([a-z]+)”将字符串“123abc”分成了两个部分:数字部分和字母部分,分别保存在了BASH_REMATCH数组的1和2位置上。

2. 替换

在正则表达式中,可以使用“${string//pattern/replacement}”来进行替换操作。

例如:

string="foo bar baz"
echo ${string//fo/Fo}

该段代码将输出“Foo bar baz”,因为将字符串中的“fo”都替换成了“Fo”。

三、注意事项

在使用=~符号时需要注意以下几点:

1. =~符号只能用于if语句或者case语句。

2. =~符号左右两边的空格不能省略。

3. =~符号右边的正则表达式必须用引号或者转义字符引起来。

4. =~符号左边必须是一个变量名。

四、总结

Linux中的=~符号是非常强大的正则表达式匹配工具,它支持匹配、分组和替换等操作。在使用时需要注意一些细节,但是掌握了它,可以帮助我们快速、方便地处理字符串。

转自  深入理解Linux =~_笔记大全_设计学院

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

执法记录仪、一体化布控球等目前支持的AI智能算法、视频智能分析算法有哪些

一、前端设备实现AI算法 主要是基于安卓的布控球实现,已有的算法包括: 1)人脸;2)车牌;3)是否佩戴安全帽;4)是否穿着工装; 可以支持定制开发 烟雾&#xf…

使用晶振遇到的两个问题

并联电阻的问题 在一些方案中,晶振并联1MΩ电阻时,程序运行正常,而在没有1MΩ电阻的情况下,程序运行有滞后及无法运行现象发生。 原因分析: 在无源晶振应用方案中,两个外接电容能够微调晶振产生的时钟频率…

【算法思考记录】力扣2477. 到达首都的最少油耗【Java,深度优先搜索】

原题链接 到达首都的最少油耗:一种优雅的解决方案 题目解析 这个算法题目描述了一个有趣的场景:一棵由城市和道路组成的树形结构,其中每个节点代表一个城市,边代表道路。所有城市的代表需要前往编号为0的城市——首都参加会议。…

开放式蓝牙耳机什么品牌好?南卡、韶音、cleer开放式耳机哪个好?

开放式耳机采用不入耳的设计,提供更为舒适的佩戴体验,不会给耳朵带来持续的压力和损害,减轻身体负担。同时,由于无需将耳机插入耳朵内,减少了细菌滋生的可能性,避免了一些耳道健康问题。这些优点也是开放式…

P5 Linux 标准C库函数

目录 前言 01 标准输入、标准输出和标准错误 02 打开文件 fopen() 03 新建文件的权限 04 fclose()关闭文件 05 读文件和写文件 06 库函数 fseek 定位 6.1 lseek的使用 07 ftell()函数 前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_Chen…

将显存和内存使用降低到原来的1/5左右

llm数据预处理的技巧 1,提前将数据集转为token 2,且可以提前全部对齐 3,存储的时候要每个序列存储为str([1,2,3]) 这样训练的时候再eval出来会让磁盘上显示多大数据内存就占用多大数据 根据上述的思路 如果能够将一个llm 大模型的整个推理过…

Dinky之安装部署与基本使用

Dinky之安装部署与基本使用 Dinky概览Linux安装部署解压到指定目录初始化MySQL数据库修改配置文件加载依赖启动Dinky Docker部署启动dinky-mysql-server镜像启动dinky-standalone-server镜像 Dinky的基本使用上传jar包Flink配置集群管理集群实例管理集群配置管理 创建作业语句编…

打破界限:SQL数据库水平扩展的8大挑战与机遇

数据库扩展是指提升数据库处理更多数据、更多用户或更多交易的能力。通常,SQL数据库采用垂直扩展的方式,即通过增加更多的CPU、内存或存储空间来增强数据库服务器的性能。然而,这种方法受限于单个服务器的硬件能力。 为了克服这一限制&#…

SpringBoot学习笔记-实现微服务:匹配系统(下)

笔记内容转载自 AcWing 的 SpringBoot 框架课讲义,课程链接:AcWing SpringBoot 框架课。 CONTENTS 1. 重构项目1.1 初始化Spring Cloud项目1.2 创建匹配系统框架 2. 实现匹配系统微服务2.1 数据库更新2.2 Web后端与匹配系统后端通信2.3 实现匹配逻辑2.4 …

《形式语言与自动机理论(第4版)》笔记(二)

文章目录 [toc]前导《形式语言与自动机理论(第4版)》笔记(一) 第三章:有穷状态自动机3.1|语言的识别3.2|有穷状态自动机即时描述 s e t ( ) set() set()例题问题 1 1 1解答问题 2 2 2解答 3.3|不确定的有穷状态自动机构…

pandas详细笔记

一:什么是Pandas from matplotlib import pyplot import numpy as np import pandas as pdarange np.arange(1, 10, 2) series pd.Series(arange,indexlist("ABCDE")) print(series)二:索引 三:切片 位置索引切片(左闭…

.mallox勒索病毒解密:恢复数据与网络安全对策

引言: 在网络威胁不断演变的今天,恶意软件如.mallox勒索病毒已成为数字安全的一大挑战。本文将深入介绍.mallox勒索病毒,以及如何有效地恢复被其加密的数据文件,并提供一些建议用于预防此类威胁。如不幸感染这个勒索病毒&#xf…

【数据结构(七)】查找算法

文章目录 查找算法介绍1. 线性查找算法2. 二分查找算法2.1. 思路分析2.2. 代码实现2.3. 功能拓展 3. 插值查找算法3.1. 前言3.2. 相关概念3.3. 实例应用 4. 斐波那契(黄金分割法)查找算法4.1. 斐波那契(黄金分割法)原理4.2. 实例应用 查找算法介绍 在 java 中,我们…

Linux快速搭建本地yum更新audit

场景:内网一台服务器上线,需要更新audit版本,因无法与其他服务器通信,需临时配置本地仓库。 1、上传新版本操作系统iso到服务器 2、创建yum仓库文件存储目录 mkdir /opt/myrepo 3、挂载磁盘到/mnt mount /opt/Kylin-Server-V…

电脑CentOS 7.6与Windows系统对比:使用方式、优缺点概述

在多操作系统环境中,CentOS 7.6和Windows系统各自独占鳌头,它们在功能、稳定性、兼容性以及安全性等方面都有着各自的优点。这篇文章将对比分析这两个操作系统,以便用户能更好地了解它们的特点和使用方式。 一、使用方式 CentOS 7.6 CentO…

探索Web前端技术的变革与未来发展

Web前端技术作为构建现代互联网应用的重要一环,自诞生以来已经经历了多轮的发展和变革。本文将回顾过去的进展,介绍当前的前端技术栈,并展望未来前端领域的发展趋势,包括新兴技术和重要概念。 引言 在信息时代的快速发展的背景下&…

【剑指offer|图解|位运算】训练计划VI+撞色搭配

🌈个人主页:聆风吟 🔥系列专栏:数据结构、剑指offer每日一练 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️训练计划VI(题目难度:中等)1.1 题目1.2 示例1.3 …

读书笔记-《数据结构与算法》-摘要3[选择排序]

选择排序 核心:不断地选择剩余元素中的最小者。 找到数组中最小元素并将其和数组第一个元素交换位置。在剩下的元素中找到最小元素并将其与数组第二个元素交换,直至整个数组排序。 性质: 比较次数(N-1)(N-2)(N-3)…21~N^2/2交换次数N运行…

基于ssm vue的风景文化管理平台源码和论文

摘 要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,基于vue的木里风景文化管理平台也不例外,但目前国内的市场仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对…

SpringBoot集成mail发送邮件

前言 发送邮件功能,借鉴 刚果商城,根据文档及项目代码实现。整理总结便有了此文,文章有不对的点,请联系博主指出,请多多点赞收藏,您的支持是我最大的动力~ 发送邮件功能主要借助 mail、freemarker以及rocke…