grep -e命令详解_grep中的正则表达式

grep是Linux中用于处理文件的工具之一。grep搜索输入文件,查找与正则表达式匹配的行,并将每个匹配的行标准输出。

正则表达式是匹配一组字符串的模式。模式由操作符、构造文字字符和具有特殊意义的元字符组成。grep支持三种正则表达式语法:Basic、Extended和perl兼容。

如果没有提供正则表达式类型,grep将搜索模式解释为基本的正则表达式。要将模式解释为扩展的正则表达式,请使用-E。

文字匹配

grep命令最基本的用法是搜索文件中的文字字符或字符序列。例如,要显示/etc/passwd文件中包含字符串“bash”的所有行,需要运行以下命令:

[root@localhost ~]# grep bash /etc/passwdroot:x:0:0:root:/root:/bin/bashbob:x:1000:1001::/home/bob:/bin/bashuser01:x:1001:1002::/home/user01:/bin/bash
c656d711f0e3fab7e76cdcc971c7e863.png

默认情况下,grep命令是区分大小写的。这意味着大写和小写字符被视为不同的。要在搜索时忽略大小写,请使用-i选项。

如果搜索字符串包含空格,则需要用单引号或双引号将其括起:

[root@localhost ~]# grep "System message bus" /etc/passwddbus:x:81:81:System message bus:/:/sbin/nologin
e5a2cfbb6b0b50bc05d1bbb8e77e0e49.png

锚点

^符号匹配行首的空字符串。在下面的示例中,字符串“root”只有在行首出现时才匹配。

[root@localhost ~]# grep '^root' /etc/passwdroot:x:0:0:root:/root:/bin/bash
c00b7fe167a4d2b858935457de8dc485.png

$要查找以字符串“bash”结尾的行,可以使用以下命令:

[root@localhost ~]# grep 'bash$' /etc/passwdroot:x:0:0:root:/root:/bin/bashbob:x:1000:1001::/home/bob:/bin/bashuser01:x:1001:1002::/home/user01:/bin/bash
6e1fd529c6c783f4f80b851ba6f99478.png

您还可以使用两个锚来构造正则表达式。例如,查看配置文件,不显示空行,请运行以下命令:

[root@localhost ~]# grep -v '^$' /etc/samba/smb.conf
059e98028f3df0601e8e242d81f64169.png

-v 反转匹配的意义,来选择不匹配的行。

https://article.pchome.net/content-2112034.html

https://www.51cto.com/it/news/2020/0525/20939.html

https://www.csdn.net/article/a/2020-05-20/15991626

|符号

| 是或者的意思。例如:想查看cpu是否支持虚拟化:

[root@localhost ~]# grep 'vmx|svm' /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
c1a49aa85ac4e8f2567a1f6735fd4797.png

如果使用扩展正则表达式,则不需要转义|,如下所示:

[root@localhost ~]# grep -E 'svm|vmx' /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
fd7c4c361387bf7ec171a72c1619045a.png

总结

正则表达式用于文本编辑器、编程语言和命令行工具,如grep、sed和awk。在搜索文本文件、编写脚本或过滤命令输出时,了解如何构造正则表达式非常有用。

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

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

相关文章

幼儿课外活动游戏_泰国清迈大小学校介绍 --【Little Star小星星幼儿园】

细数清迈的大小学校,主要分为国际学校和双语学校.一般国际学校的课程设置为10%的泰语,90%的英语,一些中文国际学校设置为20%-30%中文。国际学校可按照学制区分,美制、英制、德制、IB、新加坡等一系列课程。双语学校则为40%的泰语&…

Java8 Stream集合的筛选、归约、分组、聚合详解+案例

文章目录1 Stream概述2 Stream的创建3 Stream的使用案例使用的员工类3.1 遍历/匹配(foreach/find/match)3.2 筛选(filter)3.3 聚合(max/min/count)3.4 映射(map/flatMap)3.5 归约(reduce)3.6 收集(collect)3.6.1 归集(…

liunx宝塔配置https_宝塔面板安装教程

宝塔面板安装教程原创 计科青年 今天首先登陆阿里云官网登陆你买的阿里云服务器打开服务器控制台,点击购买的服务器,点击实例,就可以看见自己的公网IP。1.下载Xshell6远程连接软件,打开软件点击文件新建这里推荐大家使用Xshell6进…

java用户角色权限管理 只显示姓_快递物流管理系统SSM,JQUERYEASYUI,MYSQL

快递物流管理系统(SSM,JQUERY-EASYUI,MYSQL)(毕业论文27564字,共78页,程序代码,MySQL数据库) 全套项目下载地址: http://woc.xin/WQBgtE【运行环境】 Eclipse, IDEA JDK1.7(JDK1.8) Tomcat7(Tomcat8)【技术栈】 JAVA, JSP, SSM, JQUERY, JQUERY EASYUI, MYSQL, HTML, CSS, JAVA…

判刑后再上诉会改判吗_近视眼手术后还会再近视反弹吗?有哪些后遗症,温州眼科专家告诉你...

经过几代的更新发展,近视眼手术的技术已相当成熟。激光近视手术受到越来越多近视患者的青睐,飞秒激光近视手术俨然成为目前矫正近视的新潮流。很多人以为,有了近视手术后便不需要注意近视的防控。轻松摘镜的背后,是彻夜狂欢&#…

dev c++调试怎么看变量的值_利用GDB调试 MSQL

原创 张政俊 老叶茶馆来自专辑MySQL修行作者:张政俊就职于中欧基金,知数堂粉丝,数据库爱好者,熟悉RDBMS、nosql、new sql等各类数据库。啃完Oreilly的《高性能mysql》、姜老师的《MySQL技术内幕》,再加上个2,3年的实战…

案例 自动办公_办公自动化案例教程(双色)(含微课)

办公自动化案例教程(双色)(含微课)ISBN:978-7-5165-1852-6作者:贺鑫 彭卫华 李胜华定价:48.00元出版社:航空工业出版社适用层次:通用出版日期:2020-05-01项目一 使用Word制作常用公文项目描述学习要点任务一 制作行政…

柱形图无数据可选中_Excel – 如何制作出上下层排列的柱形图?

如何将同一个数据表中的不同数据列排列成上下两层柱形图?案例:将下图 1 的数据表制作成柱形图,要求将销量和利润的柱形分成两个图表上下排列。效果如下图 2 所示。解决方案:1. 选中整个数据表区域 --> 选择菜单栏的“插入”--&…

html画布360图案填充_在Photoshop中创建带有图案的抽象设计

效果图知识点:应用选区工具结合图层混合模式和混合选项,创造出唯美的抽象类画册 效果设计本身由一系列同心圆组成,每组的大小各不相同。每个圆都有6个核心色板的底色,然后渐变和图案填充会增加细节和深度。我们需要创建图案填充。…

emd实现信息隐藏_EMD算法原理与实现

欢迎关注我们,选择加"星标"或“置顶”更多技术,第一时间送达SSVEP信号中含有自发脑电和大量外界干扰信号,属于典型的非线性非平稳信号。传统的滤波方法通常不满足对非线性非平稳分析的条件,1998年黄鄂提出希尔伯特黄变换…

转为yaml python_python 如何使用HttpRunner做接口自动化测试

作者:星安果 来源:AirPython1. 前言原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试其中,单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最大的一项测试接口服务测试…

eq值 推荐算法_利用 SVD 实现协同过滤推荐算法

奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。优点:简化数据,去除噪声&#x…

打开数据库_打开这份指南,数据库运维也能优雅、简单!

对于常规数据库的运维监控来说,如何能够快速简洁的发现问题,直达问题本质并解决常见问题,是 Bethune 的安身立命之本。简约,优雅,专业,直抵本心,这是用户对 Bethune 的评价。Bethune X 功能强大…

mysql集群_MySQL集群

MySQL集群搭建之主从复制: 主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中…

mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器。PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习。相关mysql视频教程推荐:《mysql教程》php各种数据库操作类库下载PDO…

程序员需要知道的职场真相

关于面试谈薪: 1. 你值多少钱,不是由老板决定的,也不是由你自己的能力决定,而是由市场决定的。这个技术就你一个会,你说多少钱就多少钱。这个技术 100W人会,不好意思,肯定是公司在一定的时间内&…

QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法

QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法 qq浏览器是一款非常好用的手机服务软件,有很多用户都会使用这款软件作为自己的主流浏览器,相信已经有很多用户使用过这款软件了,这款软件的搜索功能非常的强大,有很多…

win10如何删除注册表残留文件

win10如何删除注册表残留文件?下面一起来看看如何操作吧。 1、按下“winr”打开运行,输入“regedit”,点击“确定”; 2、依次展开“HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowsCurrentVersionUninstall”; 3、在该子键下根据已卸载的应用程序软件图标…

jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库

前言连接数据库进行测试在工作中会比较常用,首先可以读取数据库的数据进行参数化、关联等,批量添加测试数据以及清理数据,还可以直接对SQL语句进行压测。一、基本介绍1. 首先第一步要导入mysql驱动包,放到jmeter/lib目录下&#x…

下如何查看mysql表单_Navicat 教程:如何进行表单查看

Navicat 表单查看方便表单查看、更新或删除数据,显示当前的记录:栏位名及其值。表单的弹出菜单包括这些功能:设置栏位值为 Null 或空白字符串、使用当前栏位值为筛选、设置表单查看格式及更多,导览栏可以快速切换记录、插入、更新…