【开发者成长】5 分钟搞定 Linux 正则表达式

云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

 

image

正则表达式是一种字符模式,用于在查找过程中匹配制定的字符。

元字符通常在Linux中分为两类:

  • Shell元字符,由Linux Shell进行解析;
  • 正则表达式元字符,由vi/grep/sed/awk等文本处理工具进行解析;

正则表达式一般以文本行进行处理,在进行下面实例之前,先为grep命令设置—color参数:

$ alias grep='grep --color=auto'

这样每次过滤出来的字符串都会带色彩了。

在开始之前还需要做一件事情,就是创建一个测试用的re-file文件,内容如下:

$ cat re-file
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

正则表达式元字符

 

image

特殊的元字符

 

image

扩展的正则表达式

 

image

实操

匹配以love开头的所有行

$ grep '^love' re-file
love, how much I adore you. Do you know

匹配love结尾的所有行

$ grep 'love$' re-file
clover. Did you see them?  I can only hope love.

匹配以l开头,中间包含两个字符,结尾是e的所有行

$ grep 'l..e' re-file
I had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the

匹配0个或多个空行,后面是love的字符

$ grep ' *love' re-file
I had a lovely time on our little picnic.
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配love或Love

$ grep '[Ll]ove' re-file  # 对l不区分大小写
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.

匹配A-Z的字母,其次是ove

$ grep '[A-Z]ove' re-file
Lovers were all around us. It is springtime. Oh

匹配不在A-Z范围内的任何字符行,所有的小写字符

$ grep '[^A-Z]' re-file
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

匹配love.

$ grep 'love\.' re-file
clover. Did you see them?  I can only hope love.

匹配空格

$ grep '^$' re-file

匹配任意字符

$ grep '.*' re-file
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

前面o字符重复2到4次

$ grep 'o\{2,4\}' re-file
groove.

重复o字符至少2次

$ grep 'o\{2,\}' re-file
groove.

重复0字符最多2次

$ grep 'o\{,2\}' re-file
I had a lovely time on our little picnic.
Lovers were all around us. It is springtime. Oh
love, how much I adore you. Do you know
the extent of my love? Oh, by the way, I think
I lost my gloves somewhere out in that field of
clover. Did you see them?  I can only hope love.
is forever. I live for you. It's hard to get back in the
groove.

重复前一个字符一个或一个以

$ egrep "go+d" linux.txt
Linux is a good
god assdxw bcvnbvbjk
gooodfs awrerdxxhkl
good

0个或者一个字符

ansheng@Ubuntu:/tmp$ egrep "go?d" linux.txt
god assdxw bcvnbvbjk
gdsystem awxxxx

或,查找多个字符串

$ egrep "gd|good" linux.txt
Linux is a good
gdsystem awxxxx
good

分组过滤匹配

$ egrep "g(la|oo)d" linux.txt
Linux is a good
glad
good

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文链接​​​​​​​
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

【开发者成长】每个人都在编写草率代码

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 所有开发人员都认为自己写的代码完全能让人看懂,然而,他们却无法解密彼此的代码(更不用说维护代码了)…

疫情与资本寒冬双重危机下,智领云为何能拿到数千万融资?

经济下行,资本收缩,加之中美贸易摩擦,2019年可谓“难熬”。转眼2020年,资本寒冬未消退,疫情再来雪上加霜,募资搁置、投资放缓、退出暂停,本已残酷的一级市场寒冬再次被拉长。据清科研究中心数据…

前端学习笔记之 JavaScript WebAPIs(整理)

目录 篇一一、鼠标事件二、获取元素的属性值三、设置元素的属性值四、移除属性五、H5自定义属性1. 设置自定义属性2. 获取自定义属性六、节点操作1.两种方法的区别2.节点概述3 节点层级3.1 获取节点3.2 子节点3.3 兄弟节点3.4 创建节点 ( 也称动态创建元素节点)3.5 添加节点篇一…

云原生基础架构的最佳状态,就是没有架构?

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 云原生基础架构是通向云原生时代的基石,对于很多架构师来说,上云之后,架构为什么成为了云…

docker重启 容器自动重启

创建容器时添加参数 --restartalways 后,当 docker 重启时,容器自动启动。 使用方法: docker container update --restartalways 容器名字案例: docker run --name mysql5.7 -d \ -p 3306:3306 \ -v /app/mysql/conf:/etc/my.c…

美军开发远程人脸识别系统,实现1公里内目标识别

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 编者按:本文来自微信公众号“学术头条”(ID:SciTouTiao),作者:小婷…

“蚂蚁漫步”背后的定位原理思考

作者 | 陆春晖责编 | 李雪敬头图 | CSDN下载自视觉中国蚂蚁的里程表最近看了一本很有意思的书,克利福德皮寇弗所著的《数学之书》。其中一篇《蚂蚁的里程表》,讲述蚂蚁惊人的定位导航能力,对机器人及无人车的设计者们有强烈的启示作用。笔者对…

前端学习笔记之 创建节点 与 添加节点案例

发布留言案例实现 一、案例分析二、实现过程三、完整代码一、案例分析 核心思路:点击按钮之后,就动态创建 li,添加到 ul 里面;创建 li 的同时,把文本域里面的值通过 li.innerHTML 赋值给 li;显示新的留言( 后面显示:appendChild || 前面显示:insertBefore)二、实现过…

docker容器与宿主拷贝文件

1、从容器里面拷文件到宿主机? 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径示例: 假设容器名为nginx,要从容器里面拷贝的文件路为:/etc/nginx/nginx.…

云计算如何使企业的业务受益?

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 根据调研机构IDG公司的调查,2018年,69%的企业已经采用云计算技术,而18%的企业还在采用内部…

10个 Python 工程师,9个不合格!!

毋庸置疑,Python越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员,还是年薪百万的 BATJ 的大牛都无可否认:Python的应用能力是成为一名码农大神的必要项。 所以,很多程序员把Python当做第一语言来学习。 但对于Pytho…

漫谈新零售:疫情对新零售的十大影响

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 席卷全球的新冠疫情,骤然影响了全人类的生活和工作方式。作为一起震动全球的黑天鹅事件,它对整个世界…

SpringBoot2.6.1 elasticsearch7.1.5 Vue

文章目录1. 版本兼容2. 导入依赖3. 配置4. 主页面5. 控制层6. 逻辑处理层7. pojo8. 工具类9. 常量类10. 前端页面项目开源地址1. 版本兼容 框架/组件版本SpringBoot2.6.1elasticsearch7.1.5 2. 导入依赖 <parent><groupId>org.springframework.boot</groupId&…

前端学习笔记之DOM(一)

DOM介绍 1.DOM简介1.1 什么是DOM1.2 DOM树2. 获取元素2.1 如何获取页面元素2.2 根据ID获取2.3 根据标签名获取2.4 通过 HTML5 新增的方法获取2.5 获取特殊元素(body、html)2.5.1 获取body元素2.5.2 获取html元素对象3. 事件基础3.1 事件概述3.2 事件三要素3.2.1 案例3.3 执行…

德勤发布2020技术趋势报告,五个新趋势可引发颠覆性变革

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; “2020 年的趋势将颠覆整个行业&#xff0c;并在未来十年重新定义业务&#xff0c;即使数字创新已成为各种规模企业的常规行为…

ZooKeeper的十二连问,你顶得了嘛?

来源 | 捡田螺的小男孩【前言】一线大厂ZooKeeper的十二连问&#xff0c;你顶得了嘛&#xff1f;本文已经收录到github&#xff1a;https://github.com/whx123/JavaHome什么是Zookeeper面试官&#xff1a;工作中使用过Zookeeper嘛&#xff1f;你知道它是什么&#xff0c;有什么…

【机器学习】脑机接口利器:错误率仅3%

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 编者按&#xff1a;本文来自微信公众号“AI科技评论”&#xff08;ID:aitechtalk&#xff09;&#xff0c;36氪经授权发布。 …

Excel+SQL数据库连接

目录一.语法格式二. 注解2.1 关键字一览表2.2 HDR2.3 IMEX2.3.1 IMEX1三. 简单应用3.1 提取工作表某单元格区域的数据一.语法格式 providerMicrosoft.ACE.OLEDB.12.0; User ID用户名; Data Source数据库完整路径及文件名; Mode模式; Extended Properties"HDRYES;IMEX1&qu…

【人工智能】AI如何把招人效率提高四成

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 近日&#xff0c;受新冠肺炎病毒影响&#xff0c;美国劳工部报告显示&#xff0c;将近 330 万人申请了失业保险&#xff0c;这…