文章目录一. 基本认识二. 基础例子1. 包含某个字符串2. 查找字符串所在位置、出现行数3. 反向匹配三. 正则例子1. 匹配行首、行尾2. 计算空行数量3. 匹配多种可能4. 反选搜索5. 匹配固定数量的任意字符6. 匹配零到无限个固定字符7. 使用扩展的正则表达式egrep一. 基本认识grep命令是一种强大的文本搜索工具它能使用正则表达式搜索文本并把匹配到的标红。grep全称是Global Regular Expression Print表示全局正则表达式版本它的使用权限是所有用户。grep的工作方式:它在一个或多个文件中逐行读取每个文件或输入流的内容并对每一行应用模式匹配搜索。搜索的结果被送到标准输出不影响原文件内容。如果要匹配多个文件文件名之间以空格分隔如grep match_pattern file_1 file_2 file_3 ...命令参数:-A显示行数除了显示符合范本样式的那一列之外并显示该行之后的内容。 -B显示行数除了显示符合样式的那一行之外并显示该行之前的内容。 -C显示行数除了显示符合样式的那一行之外并显示该行之前后的内容。 -c统计匹配的行数-e实现多个选项间的逻辑or 关系 -E扩展的正则表达式-fFILE从FILE获取PATTERN匹配-F相当于fgrep-i--ignore-case#忽略字符大小写的差别。-n显示匹配的行号 -o仅显示匹配到的字符串 -q 静默模式不输出任何信息 -s不显示错误信息。 -v显示不被pattern 匹配到的行相当于[^]反向匹配-w匹配 整个单词二. 基础例子[rootlocalhost~]# grep[-ivnc]需要匹配的字符文件名 #-i不区分大小写 #-c统计包含匹配的行数 #-n输出行号 #-v反向匹配1. 包含某个字符串#查找包含name所在行[rootlocalhost~]# grepnametomAndJerry.txt The cats name is Tom,whats the mouses name?# 忽略大小写[rootlocalhost~]# grep-inametomAndJerry.txt The cats name is Tom,whats the mouses name?The mouses Name is Jerry2. 查找字符串所在位置、出现行数#打印出含有name的行所在位置[rootlocalhost~]# grep-nnametomAndJerry.txt1:The cats name is Tom,whats the mouses name?#c:包含name的行数[rootlocalhost~]# grep-cnametomAndJerry.txt1#ci:包含name(不区分大小写)的行数[rootlocalhost~]# grep-cinametomAndJerry.txt23. 反向匹配# 打印不包含name的行[rootlocalhost~]# grep-vnametomAndJerry.txt The mouses Name is Jerry They are good friends # 打印不包含name(不区分大小写)的行[rootlocalhost~]# grep-vinametomAndJerry.txt They are good friends三. 正则例子例子文本[rootlocalhost~]# cat RegExp.txt----TEXT BEGIN----good morning teacher hello world is a script gold sunshine looks beautiful golden time flies god bless me what a delicious food they teast Good you fell glad wrong word gooood wrong word gl0d wrong word gl2d wrong word gl3d www.helloworld.com wwwhelloworldcom Uppercase100%means pure php have a gd module-----TEXT END-----1. 匹配行首、行尾#搜索以good开头的行[rootlocalhost~]# grep^goodRegExp.txt good morning teacher匹配行尾#搜索以Good结尾的行[rootlocalhost~]# grepGood$RegExp.txt they teast Good2. 计算空行数量#搜索空行的行数[rootlocalhost~]# grep-c^$RegExp.txt23. 匹配多种可能#搜索包含Good和good的行[rootlocalhost~]# grep[Gg]oodRegExp.txt good morning teacher they teast Good4. 反选搜索#搜索一个包含ood的行但是不能是Good或good #尖角号表示的是“非”[rootlocalhost~]# grep[^Gg]oodRegExp.txt what a delicious food wrong word gooood5. 匹配固定数量的任意字符#搜索包含一个词该词以g开头、紧接着是两个任意字符、再接着是一个d的行[rootlocalhost~]# grepg..dRegExp.txt good morning teacher gold sunshine looks beautiful golden time flies you fell glad wrong word gl0d wrong word gl2d wrong word gl3d #搜索包含一个词该词以G或g开头、紧接着是两个任意字符、再接着是一个d的行[rootlocalhost~]# grep[Gg]..dRegExp.txt good morning teacher gold sunshine looks beautiful golden time flies they teast Good you fell glad wrong word gl0d wrong word gl2d wrong word gl3d #搜索这样一些行该行包含某个单词该词满足如下条件 #1.第一个字符可以是G或g #2.第二个字符可以是l或o #3.第三个字符可以是换行符之外的任意字符 #4.第四个字符一定是d[rootlocalhost~]# grep[Gg][lo].dRegExp.txt good morning teacher gold sunshine looks beautiful golden time flies they teast Good you fell glad wrong word gl0d wrong word gl2d wrong word gl3d6. 匹配零到无限个固定字符#搜索这样一些行该行包含某个单词该词满足如下条件 #1.以g开头 #2.g后面跟零到无限个o #3.零到无限个o后面跟d[rootlocalhost~]# grep go*d RegExp.txt good morning teacher god bless me wrong word gooood php have a gd module7. 使用扩展的正则表达式egrep#搜索g和d之间至少有一个o的行 #“”代表匹配前面的字符1次以上含1次[rootlocalhost~]# egrepgodRegExp.txt good morning teacher god bless me wrong word gooood #搜索g和d之间只有0个或1个o的行0次或1次 #“?”代表匹配前面的字符1次以上[rootlocalhost~]# egrepgo?dRegExp.txt god bless me php have a gd module #搜索有glad或gold的行[rootlocalhost~]# egrepglad|goldRegExp.txt gold sunshine looks beautiful golden time flies you fell glad #搜索有glad或gold的行的另一种写法[rootlocalhost~]# egrepg(la|ol)dRegExp.txt gold sunshine looks beautiful golden time flies you fell glad参考《linux系统命令及Shell脚本实践指南》
企业数字化 ERP 产品动态
相关推荐
摆动排序 II · Wiggle Sort II(partition) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:16:55
NIO源码初探 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:16:55
【Nginx】nginx.conf文件结构与基础配置指令(上) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:16:55
Ubuntu FreeRADIUS EAP-TLS 双向认证配置与排错 简介:面向在 Ubuntu 上搭建 802.1X EAP-TLS 双向认证测试环境的网络实验人员与运维学习者,这份文档围绕 FreeRADIUS 的部署、证书生成与终端接入验证展开,适合需要复现企业级无线认证流程的初中级读者。压缩包共 1 个 docx 文件,约… · 2026/11/3 19:41:27
深度学习在旅游推荐系统中的应用与实践 1. 项目概述 这个基于深度学习的旅游推荐系统是我在2019年完成的一个实战项目,核心思路是利用Django框架搭建Web应用,结合深度学习算法为用户提供个性化的旅游目的地推荐。当时市面上大多数旅游网站还停留在基于规则或简单协同过滤的推荐方式,… · 2026/11/3 19:41:27
FreeRADIUS EAP-TLS 双向认证与802.1X无线接入实战 简介:针对 Ubuntu 系统下用 Freeradius 搭建 802.1X EAP-TLS 双向认证测试环境编写的实操文档,面向无线网络认证初学者、企业网络运维人员以及需要验证终端证书接入的设备测试人员,可帮助解决证书签发、服务端参数配置与终端接入联调中的常见… · 2026/11/3 19:41:27
老WMS操作手册拆解:状态机、业务约束与二次开发校验 简介:《WMS系统操作手册》面向仓库管理员、供应链管理者及ERP/WMS实施与运维人员。文档围绕浙江三花智能控制股份有限公司自主开发的Web端仓储管理系统,梳理从销售订单编制、提交、审核到订单变更的完整操作路径,并覆盖主生产计划编辑、审核、… · 2026/11/3 19:41:27
SpringBoot高校健康管理系统开发实践 1. 项目背景与核心价值大学生健康管理一直是高校后勤服务的重点难点。传统纸质档案管理方式存在数据分散、更新滞后、统计分析困难等问题。我们团队开发的这套基于SpringBoot的健康管理系统,正是为了解决这些痛点而生。这个系统最核心的价值在于实现了健康数据的电子… · 2026/11/3 19:41:27
免费短链接API评测与Dub.co对接实战 1. 短链接服务与API对接的价值解析 短链接服务早已从单纯的URL缩短工具,演变为现代数字营销和数据分析的基础设施。通过将冗长的原始网址压缩成简洁的短链,不仅解决了字符限制的困扰(比如Twitter早期的140字限制),更重… · 2026/11/3 19:40:27
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46