六、文本搜索工具(grep)和正则表达式

news2024/12/12 0:55:24

一、grep工具的使用

1、概念

grep: linux 系统中的一个强大的文本搜索工具,可以按照 正则表达式 搜索文本,并把匹配到的行打印出来(匹配到的内容标红)。

2、语法

grep [options]…… pattern [file]……
工作方式: grep 在一个或者多个文件中搜索字符串模板,如果模板中包括空格,需要使用引号引起来,模板后的所有字符串会被看作是文件名。
工作结果:如果模板搜索成功,则返回 0 状态码;如果搜索不成功,则返回 1 状态码;如果搜索的文件不存在,则返回2 的状态码。我们可以利用这些返回状态码进行一些自动化的 shell 脚本处理工作。

 3、相关选项

选项说明
-i忽略大小写
-e实现多个选项间的逻辑或关系

-E

如果pattern是扩展正则表达式,需要使用-E选项,grep -E = egrep

-n

显示行号
-w按单词匹配

-o

只显示匹配到的内容
-v不显示匹配到的行
-c统计匹配的

4、相关使用

 -i、-E、-e(使用扩展正则表达式时必须加 -E 选项):

两种表达方式:忽略大小写匹配ab或c;

-w:

grep单独匹配字符串与加-w选项后匹配字符串的区别;

 -o:

只显示匹配到的内容;

-v:

实现反选;

-c:

统计匹配到的行数;与wc -l 效果相同;

-r:

递归查询;

-rl:

递归查询问及那,只显示匹配到内容的文件名字;

二、正则表达式

1、背景

在进行程序设计的过程中,用户处理某些文本,需要查找符合某些比较复杂规则的字符串,使用正则表达式则会以非常简短的代码完成。

2、概念

正则表达式:通过一些特殊字符的排列,用以查找、替换、删除一行或多行文字字符串的表达式,简单来说,就是用在字符串的处理上的一项表达式。由于正则表达式语法简练,功能强大得到了许多程序设计语言的支持,包括JavaC++Perl以及Shell等。

3、分类

  • 基本正则表达式
  • 扩展正则表达式

(1)基本正则表达式

概念
基本正则表达式(Basic Regular Expression,BRE) ,又称为标准正则表达式,是最早制订的正则表达式规范,仅支持最基本的元字符集。基本正则表达式是POSIX 规范制订的两种正则表达式语法标准之一,另外一种语法标准称为扩展正则表达式。
②相关选项
元字符说明
^以某个字符开头
$以某个字符结尾
.匹配任意单字符
*对前一项进行0次或者多次重复匹配
{m,n}将前一项字符重复m-n次,{m, } , {, n} , {m}
[ ]对方括号内的单字符进行匹配
[^]不匹配方括号内的单字符
^[ ]匹配以某个字符开头的行
\转义字符,让一些特殊符号失效
()定义一个子表达式
词首【\<或\b】和词尾锚定【\>或\b】其后面的任意字符必须作为单词首部出现;其前面的任意字符必须作为单词尾部出现

③相关使用

^:

$:

. :

.. :

匹配任意两个字符;

* :

——正则表达式中的 * 与其他命令中的 * 区分开

Ⅰ、正则表达式中,对前一项字符进行0次或者多次重复匹配——使用时,*前必须加需要匹配的字符;

Ⅱ、其他命令中,匹配任意字符;

{m, n}:

grep -E (不用转义字符);不用则需要转义;

 {,n}:最少0次,没有的都匹配;

 [ ]:

一个一个进行匹配;

另一种写法(了解);

[^]:

不匹配单括号中的字符,只匹配有符号的行(空格也算)

 ^[]:

匹配以[ ]中内容开头的行;

不匹配以方括号中开头的行;

():定义一个子表达式

\1——是子表达式,这里的\1表示匹配red字符,第三条命令表示匹配首尾相同(都是red),中间任意的字符(包括空格);

第一条命令的子表达式\1是.*,完整命令表示首尾、中间都匹配任意字符;

第二条命令的子表达式\1是. ,完整的命令表示匹配首尾都相同的任意单字符,中间任意的字符;

\<或\b:
\>或者\b:

(2)扩展正则表达式

①概念
扩展正则表达式(Extended Regular Expression,ERE) 支持比基本正则表达式更多的元字符,但是扩 展正则表达式对有些基本正则表达式所支持的元字符并不支持。
前面介绍的元字符 “^”、“$”、“.”、“*”、“[]”以及“[^] 6 个元字符在扩展正则表达式都得到了支持,并且其意义和用法都完全相同,不再重复介绍。接下来重点介绍一下在扩展正则表达式中新增加的一些元字符。
②新增的元字符
元字符说明
将前一项字符进行0次或者1次的重复匹配
+将前一项进行1次或者多次的重复匹配
(|)匹配 | 符号左边或者右边的字符

只有加了-r的才可以跟目录,否则跟只能文件

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

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

相关文章

【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法

实验 3&#xff1a;集线器和交换器的区别及交换器的自学习算法 一、 实验目的 加深对集线器和交换器的区别的理解。 了解交换器的自学习算法。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、熟悉集线器和交换器的区别 (1) 第一步&#xff1a;构建网络…

linux-安全-iptables防火墙基础笔记

目录 一、 iptables链结构 五链 二、 iptables表结构 四表 三、 匹配流程 四、 语法 五、 匹配 1. 通用匹配 2. 隐含匹配 3. 显示匹配 六、 SNAT 七、 DNAT 八、 规则备份及还原 1. 备份 2. 还原 这篇将讲解iptables防火墙的基础知识 一、 iptables链结构 规则…

一个实用的端到端的深度学习库存模型

G1 文章信息 文章题为“A Practical End-to-End Inventory Management Model withDeep Learning”&#xff0c;该文于2022年发表至“MANAGEMENT SCIENCE”。文章的核心是提出了端到端的框架用于多周期库存补货问题。 2 摘要 文章研究了一个数据驱动的多周期库存补货问题&am…

<工具 Claude Desktop> 配置 MCP server 连接本地 SQLite, 本机文件夹(目录) 网络驱动器 Windows 11 系统

也是在学习中... 起因&#xff1a; 抖音博客 艾克AI分享 他的视频 #143《Claude开源MCP彻底打破AI的信息孤岛》 提到: Claude开源的MCP太强了&#xff0c;视频后面是快速演示&#xff0c;反正看了好几遍也没弄明白。菜单都不一样&#xff0c;感觉用的不是同一家 Claude. 探…

交易所 Level-2 历史行情数据自动化导入攻略

用户部署完 DolphinDB 后&#xff0c;需要将历史股票数据批量导入数据库&#xff0c;再进行数据查询、计算和分析等操作。DolphinDB 开发了 ExchData 模块&#xff0c;主要用于沪深交易所 Level-2 行情原始数据的自动化导入&#xff0c;目前已支持的数据源包括&#xff1a; 沪…

matlab finv()函数解释 F分布 和 逆累积分布函数 卡方分布

1.Earths flattening 翻译并解释含义 "Earths flattening" 翻译为中文是“地球的扁率”。 含义解释&#xff1a; 地球的扁率是指地球形状偏离完美球形的程度。地球并非一个完美的球体&#xff0c;而是一个扁球体&#xff0c;即在两极略微扁平&#xff0c;赤道略微…

Istio笔记01--快速体验Istio

Istio笔记01--快速体验Istio 介绍部署与测试部署k8s安装istio测试istio 注意事项说明 介绍 Istio是当前最热门的服务网格产品&#xff0c;已经被广泛应用于各个云厂商和IT互联网公司。企业可以基于Istio轻松构建服务网格&#xff0c;在接入过程中应用代码无需更改&#xff0c;…

国家烟草局招聘信息查看

以下是官网链接&#xff1a; 国家烟草专卖局 在首页&#xff0c;鼠标移到行业资讯&#xff0c;点击人事与培训&#xff0c;即可看到相应的招聘信息了。

【SpringMVC】用户登录器项目,加法计算器项目的实现

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;用户登录项目实现 1&#xff1a;需求 2&#xff1a;准备工作 &#xff08;1&#xf…

联通光猫DT741-csf 完全po解 改桥接

1.管理员密码破解&#xff0c;把光猫的loid pppoe用户名密码&#xff0c;各个连接vlan id记下来 打开链接 http://192.168.1.1/hidden_version_switch.html version选择Default Version&#xff0c;点击submit&#xff0c;光猫默认重启。重启后ip地址变为192.168.1.1 并且dhcp…

12月2日星期一今日早报简报微语报早读

12月2日星期一&#xff0c;农历十一月初二&#xff0c;早报#微语早读。 1、公安部&#xff1a;全国机动车所有人12月2日起均可申领电子行驶证&#xff1b; 2、2025年国考笔试开考&#xff1a;参考率约为86.7%&#xff0c;约65人录1人&#xff1b; 3、今日头条、拼多多等9款A…

机器学习概述,特征工程简述2.1——2.3

机器学习概述&#xff1a; 1.1人工智能概述 达特茅斯会议—人工智能的起点 机器学习是人工智能的一个实现途径 深度学习是机器学习的一个方法发展而来 1.1.2 机器学习和深度学习能做什么 传统预测 图像识别 自然语言处理 1.2什么是机器学习 数据 模型 预测 从历史数…

C语言(一维数组练习)

键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 #include <stdio.h>int main(int argc,char *argv[]) {int i,j,tmep;int arr[10];printf("请输入10个测试整数&#xff1a;\n");int lensizeof(arr)/sizeof(arr[0]);for(i0;i<len;i){scanf(&q…

【2025最新计算机毕业设计】基于SSM+Vue中华传统文化吟诵知识学习系统

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

MySQL需掌握到何种程度?才能胜任工作

大家好&#xff0c;我是袁庭新。星友问&#xff1a;MySQL需要学到什么程度&#xff1f;才能胜任日常的软件开发工作呢&#xff01;以下是一些建议的学习目标和程度&#xff0c;这些目标旨在帮助你在工作中高效地使用MySQL。 数据库的基本概念、MySQL的安装及配置、SQL的概念、S…

[TPAMI 2024]Vision-Language Models for Vision Tasks: A Survey

论文网址&#xff1a;Vision-Language Models for Vision Tasks: A Survey | IEEE Journals & Magazine | IEEE Xplore 论文Github页面&#xff1a;GitHub - jingyi0000/VLM_survey: Collection of AWESOME vision-language models for vision tasks 英文是纯手打的&…

桂湾公园的地面免费停车场(50个左右)

之前一直以为桂湾公园只有P1和P2地下停车场可以免费停车。没想到桂湾公园还有地面停车场&#xff0c;停车位大概是50个。 具体位置在桂湾公园5号门地上停车场。 桂湾公园-5号门 广东省深圳市南山区桂湾河南街与鲤鱼门西二街交叉口西北20米 停车场入口对面是红星美凯龙&#x…

SpringBoot连接多数据源MySQL、SqlServer等(MyBatisPlus测试)

SpringBoot连接多数据源MySQL、SqlServer等&#xff08;MyBatisPlus测试&#xff09; 在实际的项目开发中&#xff0c;我们往往需要同时连接多个数据源对数据进行处理。本文将详细介绍在SpringBoot下配合MybatisPlus如何连接多数据源&#xff0c;实例将会使用连接MySQL、SqlSe…

基于NVIDIA NIM 平台的知识问答系统实现客服功能

前言&#xff1a; NVIDIA联合CSDN推出了《NVIDIA NIM黑客松训练营》&#xff0c;通过对着提供的实验手册&#xff0c;学习了基于NVIDIA的NIM平台知识问答系统&#xff0c;简单的一段代码就可以实现一个AI智能问答系统。而且这次活动注册账号即可获得到免费的1000tokens&#x…

(12)时间序列预测之MICN(CNN)

文章目录 前言1. challenge 一、网络结构1. MHDecomp2. Trend-cyclical Prediction Block3. Seasonal Prediction BlockMIC LayerMerge 实验结果1.长时预测 总结参考 文章信息 模型&#xff1a; MICN (Multi-scale Isometric Convolution Network)关键词&#xff1a; 长时预测…