【shell】正则表达式:常见通配符、元字符与转义符

news2024/11/26 0:34:12

文章目录

  • 一. 定义
  • 二. 常见通配符
    • 1. 匹配一个
      • 1.1 " . " 点符号
      • 1.2. " ? "符号:代表任意一个
      • 1.3. " $ "符号:匹配尾部
      • 1.4. " [] "符号
      • 1.5. " ^ "符号和" ! "符号
    • 2. 匹配多个
      • 2.1. " * "符号
      • 2.2. " \{n,m\} "符号
      • 2.3. " {} "符号
  • 三、元字符 与转义符

一. 定义

正则表达式就是能用某种模式去匹配一类字符串的公式,它是由一串字符和元字符构成的字符串。所谓元字符,就是用以阐述字符表达式的内容、转换和描述各种操作信息的字符。

 

二. 常见通配符

1. 匹配一个

1.1 " . " 点符号

点符号用于匹配除换行符之外的任意一个字符。

[root@localhost ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

1.2. " ? "符号:代表任意一个

当它作为通配符使用时,代表的是任意一个字符。
如果要列出以字母A开头、中间有一个字母的文件名、以.doc结尾的文件,就需要使用“?”了。

[root@localhost ~]# ls-l A?.doc

 

1.3. " $ "符号:匹配尾部

" $ “用于匹配尾部,比如说” abc$ "代表的是以abc结尾的行。

" ^$ ": 则代表该行为空,因为 ^ 和 $ 间什么都没有

# 以r开头,中间有一串任意字符,以h结尾的行
[root@localhost ~]# grep '^r.*h$' /etc/passwd
root:x:0:0:root:/root:/bin/bash

 

1.4. " [] "符号

用于匹配方括号内出现的任一字符

A、B、C、D选项中的任意一种,用正则表达式表示就是[ABCD]
要匹配任意一个大写字母,就需要使用“-”号做范围限定,写成[A-Z],要匹配所有字母则写成[A-Za-z]。

匹配手机号:“^1[38][0-9]{9}”

 

1.5. " ^ “符号和” ! "符号

  1. 当出现在“[]”中的时候,代表取反。[^A](或[!A])代表不是A。
  1. 用于匹配开头。比如说“^root”匹配的是以字母root开始的行。
[root@localhost ~]# grep '^root' 
/etc/passwdroot:x:0:0:root:/root:/bin/bash

 

2. 匹配多个

2.1. " * "符号

代表0个或多个字符。比如*.doc指所有以.doc结尾的文件。

”号经常和“.”符号加在一起使用。比如“.”代表任意长度的不包含换行的字符。

[root@localhost ~]# grep 'r*t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
。。。。

 

2.2. " {n,m} "符号

" * "不能精确地控制匹配的重复次数,但使用“{n,m}”符号则能更加灵活地控制字符的重复次数.

 

2.3. " {} "符号

匹配所有括号内包含的以逗号隔开的字符。

例如,下面列出了所有以字母A、B、C开头,以.doc结尾的文件:

#第一种方法:用“{}[root@localhost ~]# ls -l {A,B,C}.doc
#第二种方法:用“[][root@localhost ~]# ls -l [A-C].doc
#以上两种方法都能满足题意,但是如果要列出以字母AB或者CD开头、以.doc结尾的文件,就只能用“{}”了。
[root@localhost ~]# ls -l {[A-Z]*.doc,[0-9]??.txt}

 

三、元字符 与转义符

在这里插入图片描述

 

在这里插入图片描述

 
 

参考:
https://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html

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

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

相关文章

数据结构-树、二叉树

一、概念 1、树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树,是因为它看起来像是一棵倒挂的树,也就是说它的根在上,而叶子在下。 如果一个数的结点n为0,那么这…

图论算法:DFS求有向图或无向图两点间所有路径及最短路径

1、目的 根据有向图获取指定起终点的所有路径,包括最长和最短路径。 2、示例效果 2.1 原始数据 路线起终点整理如下: // 共计12个顶点,19条边。 (起点,终点,1)最后的1代表起点终点是连通的。 起点,终点,1:2 4 1 起点,终点,1:9 10 1 起点,终点,1:8 11 1 起点…

易基因: RRBS揭示基于DNA甲基化驱动基因的肾透明细胞癌预后模型的鉴定和验证|项目文章

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 肾细胞癌(RCC)是最常见的肾癌亚型,每年超400万例新发病例,是泌尿系统恶性肿瘤导致的第二大死因。2%-70%的RCC为透明细胞RCC(Cl…

node.js使用nodemailer发送阿里云企业邮箱的邮件

百度一搜就能搜到各种博客例子,但是有个问题:有些参数写的不明不白的,我在发送的时候总是报错 后面看到了一篇博客: 基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决) 注意几点: …

【现场问题】flink-cdc,sql一直校验不通过,为什么,明明sql没有错误

flink-cdc 问题展示问题解决校验结果 问题展示 这里的flink-cdc的sql对了好几遍,都没问题,包括单个执行create,也是显示校验通过 如图: 但是多个一起就报错了: java.lang.IllegalArgumentException: only single state…

奇点云DataSimba R4.9 LTS发布:稳定性加固,架构升级,142项功能上新

不久前,奇点云的数据云全系产品如期发布新一季商业化版本更新: 数据云平台DataSimba:R4.9 LTS版发布,稳定性全面加固,功能上新;自R4系列起架构升级,封装底层复杂性,支撑上层快速构建…

git代码合并merge与rebase

一、概述 1.区别 Merge具有更高的可追溯性 保留真实的历史,而Rebase则更整洁且易于审核。 rebase:不会有单独的commit合并记录,直接将分支中的所有commit排到master的记录之后。 merge:将在子分支的所有提交记录成一次commit,作为单独的一…

机器学习实战:Python基于LR线性回归进行预测(十)

文章目录 1 前言1.1 LR的介绍1.2 LR的应用 2. weather数据集实战演示2.1 导入函数2.2 导入数据2.3 数据整体可视化2.4 训练模型2.5 预测模型2.6 评估模型 3.讨论 1 前言 注意这里的LR指的是Linear Regression,线性回归。而非逻辑回归Logistic Regression&#xff0c…

【QT】——TCP套接字通信

目录 1.基本概念 2.QTcpServer 2.1 常用接口 2.2信号 3 QTcpSocket 3.1构造函数 3.2 连接函数 3.3 接收数据 3.4 发送数据 3.5 信号 4.通信的过程 4.1服务器端 4.2 客户端 通信流程: 1.基本概念 QT是 C 的一个框架,并且里边提供了用于套接…

让你不再好奇ai绘画免费网站有哪些

你有没有想过成为一名画家,但是缺乏绘画技巧?现在有了 ai作画生成器,让你可以轻松地创作出绝美的艺术品!现在有很多ai作画的免费网站,但是这些网站大多数操作繁琐,不易上手。这时我们可以寻求一款趁手的ai绘…

【算法与数据结构】剑指 Offer 58 - II. LeetCode左旋转字符串

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:以例一为例,例一的字符串可以分为"ab" "cdefg"两个子串,首…

element Plus Select选择器实现查询搜索 下拉选择

这Select选择器用于哪里 怎么用? Select 选择器可以用于许多不同的场景,包括但不限于以下几个方面: 表单:Select 选择器常用于表单中的下拉选择字段,例如选择国家、城市、性别、职位等。用户可以从预定义的选项中选择…

软考:中级软件设计师:计算机体系结构,CISC和RISC,Flynn分类,指令流水线,吞吐率,效率

软考:中级软件设计师:计算机体系结构 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的…

Win10任务栏的天气怎么关闭?Win10任务栏的天气关闭方法

Win10任务栏的天气怎么关闭?Win10任务栏的天气功能可以提供即时的天气信息,方便用户随时获取当前和未来的天气预报。然而,对于一些用户来说,这个天气小部件可能并不是必需的,并且想要关闭它以腾出任务栏的空间。无论是…

工程师抓秃头总结卡尔曼滤波简单原理及收敛原因

1、关于矩阵的一些想法 有小伙伴看到矩阵就脑瓜壳疼,那是没有了解数学家为啥闲的没事要用矩阵呢,从来没有人说不用矩阵就算不了,矩阵最初我认为是数学家偷懒,因为写一堆方程字太多太长,所以用了简写的形式,…

【SAP-MDG】售前常见问题

在与甲方的交流过程中,常常会有以下几个问题 一、“为什么要上主数据管理系统?” 见:主数据管理的意义 二、“有了主数据管理机制,还要不要上主数据管理平台?” 主数据的管理机制是通用性的,我们在任何系…

【算法与数据结构】28、LeetCode实现strStr函数

文章目录 一、题目二、暴力穷解法三、KMP算法四、Sunday算法五、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、暴力穷解法 思路分析:首先判断字符串是否合法,然后利用for循环&#xff…

:hover悬浮在元素上方时,不出现黑边

给element plus的下拉菜单设置悬浮样式 .el-dropdown :hover{border: none;outline: none; } border:node 表示元素本身的边框没有了 outline:none 表示元素的轮廓线没有了

K8S集群管理

集群管理 1 集群管理1.1 节点管理1.1.1 令牌管理1.1.2 集群扩缩容1.1.3 集群升级1.1.4 证书管理 1.2 数据管理1.2.1 ETCD基础1.2.2 ETCD实践1.2.3 备份还原1.2.4 ETCD集群 1 集群管理 1.1 节点管理 1.1.1 令牌管理 学习目标 这一节,我们从 令牌基础、令牌实践、…

【Part 2】博物馆防刷票小程序接入无感验证--跳转式接入

前文在这里: 【Part 1】现在去博物馆都预约不上了,黑产多少有点疯狂了 前面这篇文章讲到目前博物馆的门票基本被黄牛薅没了,我们普通人只能通过黄牛去买票,并且讲到了预约小程序如何通过插件式接入无感验证。 这篇文章我们继续讲…