Shell之(正则表达式)

目录

一、正则表达式的概括

常用选项 

 基础正则表达式

查看以xxx为开头    查看以xxx为结尾的文件内容 

匹配单个或多个字符 

 匹配中括号里的内容

 对子表达式进行多次或者限定次数的匹配 

拓展正则表达式的基本用法 

扩展元字符

+ 匹配+前面的字符或表达式至少1次(大于等于1次{1,})

? 匹配?前面的字符或表达式0次或1次({0,1})

()  将()里面的表达式作为一个整体 

| 以或的方式匹配字符串 


一、正则表达式的概括

正则表达式是由普通字符与元字符组成:

  • 普通字符 包括大小写字母、数字、标点符号及一些其他符号
  • 元字符 是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式
  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式.

通配符:作用范围 匹配文件/目录名

正则表达式:匹配文件内容,用于精确筛选信息,可以配合grep,egrep,awk,sed命令进行搭配使用,查找时,也比通配符更加精确

常用选项 

 基础正则表达式

(支持的工具:grep、egrep、sed、awk) 

查看以xxx为开头    查看以xxx为结尾的文件内容 
[root@localhost ~]# grep '^1' zzz.txt   #过滤出1开头的

[root@localhost ~]# grep '3$' zzz.txt   #过滤出3结尾的 

匹配单个或多个字符 
[root@localhost ~]# grep 'q.e' 1.sh      #. 代表除了\n意外的任意字符

[root@localhost ~]# grep 'q.*e' 1.sh   #.* 匹配任意字符大于等于0次(这里代表q任意字符任意长度e)

 匹配中括号里的内容

[xxx]匹配中括号里的列表中的任意一个字符
 
[xxx]*匹配中括号里的列表中任意字符大于等于0次

[root@localhost ~]# grep "1[2]" 5.sh

[root@localhost ~]# grep "1[1234567890]" 5.sh

 

 [^xxx]匹配除了中括号里的列表中的任意一个字符
[^0-9]匹配所有非数字的字符 
[^a-zA-Z]匹配所有非大小写字母的字符

[root@localhost ~]# grep "[^24680]" 5.sh   #匹配除了中括号里的列表中的任意一个字符

 对子表达式进行多次或者限定次数的匹配 

\{n\}匹配{n}前面的字符或表达式 n 次;grep必须加\;egrep不用加\.

使用grep必须使用两个\\ 

[root@localhost ~]# grep "go\{2\}d" 5.sh

[root@localhost ~]# grep "go[ola]\{2\}d" 5.sh

 

 

\{n,\}匹配{n}前面的字符或表达式至少 n 次(>=n次)
 
\{n,m\} 匹配{n}前面的字符或表达式 n至m 次(大于等于n次且小于等于m次)
 
grep必须加\;egrep不用加\.

[root@localhost ~]# grep "go\{2,\}d" 5.sh    #最少匹配两次,包含两次

[root@localhost ~]# grep "go\{2,4\}d" 5.sh   #至少匹配两次,最多四次

 

拓展正则表达式的基本用法 

支持awk和egrep使用,如果grep和sed想要正常使用(grep -E  sed -r)

元字符作用含义
+匹配前面子表达式1次及以上
匹配前面子表达式0次或者1次
()将括号中的字符串作为一个整体
|以"或"的方式匹配字符串

使用egrep不用加反斜杠;egrep等于grep -E 

 

\w :匹配包括下划线的任何单词字符。
 
\W :匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
 
grep需搭配-P使用 

[root@localhost ~]# grep -P "go\wd" 5.sh

 

 \d :匹配一个数字字符。
 
\D :匹配一个非数字字符。等价于 [^0-9]。        
 
grep需搭配-P使用

 

\s :空白符。
 
\S :非空白符
 
grep需搭配-P使用 

[root@localhost ~]# grep -P "go\Sd" 5.sh

扩展元字符

(支持的工具:egrep、awk     )grep -E   sed -r

+ 匹配+前面的字符或表达式至少1次(大于等于1次{1,})
[root@localhost ~]# grep -E "go+d" 5.sh

[root@localhost ~]# grep -E "go{1,}d" 5.sh

 

? 匹配?前面的字符或表达式0次或1次({0,1})
[root@localhost ~]# grep -E "goo?d" 5.sh

[root@localhost ~]# grep -E "goo{0,1}d" 5.sh

 

()  将()里面的表达式作为一个整体 
[root@localhost ~]# grep -E "g(oo)*d" 5.sh

| 以或的方式匹配字符串 
[root@localhost ~]# grep -E "g(oa|ol|la|oo)d" 5.sh

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BUUCTF---misc---[MRCTF2020]ezmisc

1、附件下载后是一张图片 2、查看属性,winhex分析,没发现什么 3、在kali中binwalk和foremost也没找到什么信息 4、用stegsolve分析也没发现什么 5、这里几乎常见的misc方法都试过了,还是没有发现什么 6、回归到图片本身,想到的…

Nginx文件解析漏洞复现:CVE-2013-4547

漏洞原理 CVE-2013-4547漏洞是由于非法字符空格和截止符导致Nginx在解析URL时的有限状态机混乱,导致攻击者可以通过一个非编码空格绕过后缀名限制。假设服务器中存在文件1. jpg,则可以通过改包访问让服务器认为访问的为PHP文件。 漏洞复现 开启靶场 …

Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解

系列文章目录 Python数据类型:编程新手的必修课深入探索Python字符串:技巧、方法与实战Python 函数基础详解Python正则表达式详解:掌握文本匹配的魔法Python文件操作宝典:一步步教你玩转文件读写Python面向对象基础与魔法方法详解…

sheng的学习笔记-docker部署Greenplum

目录 docker安装gp数据库 mac版本 搭建gp数据库 连接数据库 windows版本 搭建gp数据库 连接数据库 docker安装gp数据库 mac版本 搭建gp数据库 打开终端,输入代码,查看版本 ocker search greenplum docker pull projectairws/greenplum docker…

大模型618提前开战,永久免费意味着什么?

万万没想到,当我们在说经过上一年的百模大战,2024 年将成为大模型应用落地的关键一年,不承想,AI 大模型价格战疯狂席卷而来。 这场战役始于巨头。字节、阿里、百度、科大讯飞、腾讯先后官宣降价或免费,价格战所带来的…

风控指南:国内车险欺诈呈现四大趋势

目录 车险欺诈呈现内外勾结的团伙化 防范车险欺诈需要多重合作 保险企业需要提升反欺诈能力 监管部门需要加强协同合作 2024年4月11日,国家金融监督管理总局官网发布国家金融监督管理总局关于《反保险欺诈工作办法(征求意见稿)》公开征求意见…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-16讲 EPIT定时器

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Lumines推出RGBL彩色混合LED

Luminus Devices倾心打造了一款崭新的4合1 RGBL(红绿蓝绿石灰)LED系列,专为舞台与建筑照明领域量身打造,满足对高显色指数(CRI)与高输出颜色混合的苛刻需求。这一创新之举,无疑是照明技术的一次…

【OpenGL实践10】关于几何着色器

目录 一、说明 二、几何着色器 2.1 设置 2.2 基本几何着色器 2.2.1 输入类型 2.2.2 输出类型 2.2.3 顶点输入 2.2.4 顶点输出 2.3 创建几何着色器 2.4 几何着色器和顶点属性 三、动态生成几何体 四、结论 练习 一、说明 几何着色器的应用比较高级,关于…

Postman使用技巧

Postman是一款广泛使用的API开发和测试工具,专为简化Web服务API的开发、测试、文档编制和协作过程而设计。它支持各种HTTP请求方法,包括GET、POST、PUT、DELETE等,允许用户轻松地构建和发送请求,以及检查响应。 本文介绍几个提升效…

Linux信号:信号的概念及意义

目录 一、什么是信号 kill-l查看信号 二、信号的产生 2.1系统调用 kill raise abort 2.2软件条件 13)SIGPIPE pipe信号 14)SIGAKARM alarm信号 2.2硬件中断 2.3异常 8)SIGFPE 除0异常 11)SIGSEGV 野指针 2.4信号处理的常见方式 三、Core Dump和term…

docker如何拉取redis最新镜像并运行

要拉取Docker Hub上最新版本的Redis镜像,您可以使用以下命令: docker pull redis:latest 这里的latest标签会自动获取Redis镜像的最新版本。如果您希望指定一个确切的版本号,可以直接使用该版本号替换latest。例如,要拉取Redis版…

Python | Leetcode Python题解之第108题将有序数组转换为二叉搜索树

题目: 题解: class Solution:def sortedArrayToBST(self, nums: List[int]) -> TreeNode:def helper(left, right):if left > right:return None# 选择任意一个中间位置数字作为根节点mid (left right randint(0, 1)) // 2root TreeNode(nums…

计算机网络数据链路层知识点总结

3.1 数据链路层功能概述 (1)知识总览 (2)数据链路层的研究思想 (3)数据链路层基本概念 (4)数据链路层基本功能 3.1 封装成帧和透明传输 (1)数据链路层功能…

上海亚商投顾:三大指数均跌超1.3%,全市场下跌个股超4600只

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整,三大股指均跌超1.3%。PEEK概念股逆势大涨,肯特股份、沃特股份涨停&a…

[STM32-HAL库]AS608-指纹识别模块-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、详细步骤 1.光学指纹模块 2.配置STM32CUBEMX 3.程序设计 3.1 输出重定向 3.2 导入AS608库 3.3 更改端口宏定义 3.4 添加中断处理部分 3.5 初始化AS608 3.6 函数总览 3.7 录入指纹 3.8 验证指纹 3.9 删除指纹 3.10 清空指纹库 三、总结及资源 一、前言 …

AI赋能 企业智能化应用实践

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言云定价优化语音助手与聊天机器人预测性维护客服运营自动化低功耗微处理器神…

无线网络安全技术基础

无线网络安全技术基础 无线网络安全风险和隐患 随着无线网络技术广泛应用,其安全性越来越引起关注.无线网络的安全主要有访问控制和数据加密,访问控制保证机密数据只能由授权用户访问,而数据加密则要求发送的数据只能被授权用户所接受和使用。 无线网络在数据传输时以微波进…

微软MSBuild大会发布Copilot+PC:技术革新还是隐私噩梦?

微软在最近的MSBuild 2024大会上发布了全新的CopilotPC概念,这一技术结合了高通骁龙X Elite芯片,将人工智能与PC紧密结合。此次发布引起了广泛关注,不仅是因为其技术创新,还因为潜在的隐私问题。甚至连Elon Musk也对此表示担忧&am…

Nginx企业级负载均衡:技术详解系列(11)—— 实战一机多站部署技巧

你好,我是赵兴晨,97年文科程序员。 工作中你是否遇到过这种情况:公司业务拓展,新增一个域名,但服务器资源有限,只能跟原有的网站共用同一台Nginx服务器。 也就是说两个网站的域名都指向同一台Nginx服务器…