文本三剑客grep与正则表达式、元字符

正则表达式

正则表达式又称为正规表达式、常规表达式、在代码中常简写为regex、regex或RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定的字符串。

        这里不得不提的是shell三剑客:grep,sed,awk。

一、grep和元字符

grep [选项]  [查找条件(正则)]  [目标文件]
 
-E:开启扩展的正则表达式
-c:计算找到'搜寻字符串'的次数
-i:忽略大小写的不同,所以大小写视为相同
-o:只找到这个关键字就可以
-v:反向选择,即输出没有匹配到的那些字符
--color=auto:可以将找到的关键词部分加上颜色的显示!
-n:顺便输出行号
-w:表示精确匹配一个字符

-q :静默

-R :  可以查找目录下面的文件

-B2 : 前两行

-A2 : 后两行

-C2 : 上下两行

egrep [选项]  [查找条件]  [目标文件]

-l   : 只要文件名

-n  :  带行号

元字符定义

元字符是在正则表达式中具有特殊含义的字符,用于定义搜索模式中字符的出现方式和位置

元字符使得正则表达式能够以更灵活和动态的方式来匹配文本。在实际应用中,我们经常需要结合记忆、示例学习和案例练习来熟练掌握它们的使用。通过不断实践,我们可以构建出复杂的正则表达式,以高效地处理文本匹配和数据提取任务。

分类:

  • 数量元字符* 表示前一个字符可以出现0次或多次;+ 表示前一个字符至少出现1次;? 表示前一个字符出现0次或1次;花括号 {n} 用来指定前一个字符或组合的确切重复次数。
  • 边界元字符^ 表示行的开头;$ 表示行的结尾;这些元字符帮助我们定位特定的字符串位置。
  • 字符类元字符. 用来匹配任意单个字符(除了换行符);方括号 [] 用来定义一个字符集合,匹配其中任一字符;而 [^] 则是排除特定字符的集合。
  • 选择元字符:竖线 | 用作“或”操作,允许选择两个正则表达式中的一个进行匹配。
  • 分组元字符:圆括号 () 用于将多个字符作为一个整体进行处理,它们通常与数量元字符一起使用来指定组的出现次数。

1.基本正则表达式元字符串:

  • ^ :行首定义符
  • grep ^root /etc/passwd
  • $ :行尾定义符
  • grep root$ /etc/passwd
  • .  :匹配任意单个字符  
  • grep r.t /etc/passwd
  • *  :匹配前导符0次到多次
  • grep " ro* " /etc/passwd (配合左侧的字符) 
  • .* : 匹配任意多个字符
  • grep " .* " /etc/passwd
  • [ ] : 匹配指定范围内的一个字符
  • grep " [rR]oot " /etc/passwd
  • [-] : 匹配指定范围内的一个字符,连续的范围
  • grep "[a-z]oot" /etc/passwd
  • [^] : 匹配不在指定组内的字符
  • grep "[^a1?/]" /etc/passwd (排除中括号内的所有字符,只取除这些字符外的所有字符的结果)
  • \ : 用来转义元字符(' '   " "  \),脱意符。(\应该在需要被转义字符的左侧
  • grep "r.\ot" /etc/passwd
  • \< : 词首定位符
  • grep " \<root " etc/passwd (只查询以root开头的)
  • \> : 词尾定位符
  • 同上,意思相反的啦
  • ( ) : \(..\) 匹配稍后使用的字符的标签
  • (:3,9 s/\(.*\)/#\1/ 加注释)
  • x\{m\} : 字符x重复出现m次
  • grep r" \{o\} " etc/passwd
  • x\{m,\}
  • grep r" o\{2}\ "t etc/passwd
  • x\{m,n\}
  • grep r" o\{3,4\} "t etc/passwd

2.扩展正则表达式元字符串(egrep扩展支持正则)

  • + : 匹配1~n个前导字符 
  • egrep ro+ot /etc/passwd
  • ? : 匹配0~1个前导字符
  • egrep "ro*ot" /etc/passwd
  • a|b : 匹配 a 或 b 
  • egrep " o|o " /etc/passswd 
  • (): 组字符
  • egrep "r(o|ot)" /etc/passwd

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

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

相关文章

OPC-UA open62541 C++测试代码

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 这是之前写的open62541测试代码…

Mac电脑安装打开APP显示问题已损坏 问题解决

当MAC电脑安装完软件打开时&#xff0c;显示文件已损坏&#xff0c;无法打开。搜了很多教程终于找到解决方案&#xff0c;记录下方便以后再用。 我的mac电脑是intel芯片的&#xff0c;如果你遇到这个问题&#xff0c;可以参考我的这个方案。 1.首先当打开软件后出现 “xx软件已…

【话题】你用过最好用的AI工具有那些

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景一、C知道二、CSDN工具集三、AI工具的普及与受欢迎程度四、AI工具的实际应用与影响五、总结与展望文章推荐 背景 探讨人们在使用AI工具时&#xff0c;最喜欢的和认…

【多客陪玩】陪玩小程序源码APP+小程序+公众号开发 -源码交付,线下可爆改家政,整理师等功能

简述 随着电竞行业的快速发展&#xff0c;电竞陪玩APP正在逐渐成为用户在休闲娱乐时的首选。为了吸引用户和提高用户体验&#xff0c;电竞陪玩APP开发需要定制一些特色功能&#xff0c;并通过合适的盈利模式来获得收益。本文将为您介绍电竞陪玩APP开发需要定制的特色功能以及常…

【漏洞复现】RuvarOA协同办公平台 WorkFlow接口处存在SQL注入

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

大型外企都在用的邮件大附件系统,究竟哪里好?

外企的业务往来复杂&#xff0c;内部沟通频繁&#xff0c;且普遍采用邮件作为沟通方式&#xff0c;外企一般使用的邮件系统多种多样&#xff0c;但其中一些较为常见和广泛使用的包括Zoho Mail和Outlook等。 Outlook作为微软旗下的全球主流电子邮件服务提供商之一&#xff0c;也…

vscode 侧边栏资源管理器图标消失解决方案

偶然操作导致,侧边栏资源管理器图标消失,用着及其难受 尝试在网上找解决方案,找了很久都是说右键侧边栏啥啥的,无法解决 尝试删除setting.json 也无法解决 最终解决方案: 打开查看 ,命令面板 输入 View: Reset View Locations 回车就解决了

FFmpeg常用API与示例(二)—— 解封装与转封装

封装层 封装格式(container format)可以看作是编码流(音频流、视频流等)数据的一层外壳&#xff0c;将编码后的数据存储于此封装格式的文件之内。 封装又称容器&#xff0c;容器的称法更为形象&#xff0c;所谓容器&#xff0c;就是存放内容的器具&#xff0c;饮料是内容&…

3.buuctf-rsarsa

3.buuctf-2.rsarsa 方法1&#xff1a;求d后再求明文 很明显题目里有p,q,e,c让求明文m&#xff0c;有p,q,e那么就计算一下d&#xff0c;借用一下工具 这里的e是10进制的转为16进制为10001 再用脚本求 \#p和q在工具中运算后得到n和d&#xff0c;将密文&#xff0c;n和d放入即可…

Android使用Chaquo来运行Python的librosa的相关代码【有详细案例教程】

在某些情况下&#xff0c;我们可能需要在android上运行python的代码&#xff0c;那么常见的解释器有很多&#xff0c;目前比较成熟的就是chaquo&#xff0c;它适配的第三方机器学习的库很多&#xff0c;下面是它的简单使用教程 1.环境的搭建 1.1 在Android studio中新建安卓工…

机器学习正则化算法的总结,建议收藏。(上篇)

下篇地址&#xff1a; 正则化是一种用于降低机器学习模型过拟合风险的技术。当模型过度拟合训练数据时&#xff0c;它会在新样本上表现不佳。所以为了解决这个问题&#xff0c;我们必须要引入正则化算法。 正则化通过在模型的损失函数中添加一个正则项&#xff08;惩罚项&…

2023年建筑安全员C证模拟试题答案及解析

100分题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 单选题&#xff08;1-10&#xff09; 1. 发生生产安全事故&#xff0c;对负有责任的生产…