linux模式匹配运算符,linux之正则表达式

文件查找的需要:

grep:(GLOBAL Research) 根据模式(网)去搜索文本,而后将符合模式的文本行显示出来。

【部分匹配,显示时显示一行】

Pattern:模式。(文本字符以及正则表达式元字符组合而成的匹配条件)

例子:grep‘root’/etc/passwd

grep所支持的选项:

-i:忽略大小写

--color 显示颜色

alias grep=’grep --color’

-v: 反向查找,显示没有被模式匹配的行

-o:只显示被模式匹配出来的字符串,每个字符串显示为一行。

回顾一下 globbing(文件名通配)

* :任意长度任意字符

?:任意单个字符

[]:指定范围内的

[^]:指定范围之外的

如何写模式pattern?

正则表达式 Regular EXPression;REGEXP

元字符:

.:用点表示任意单个字符

grep‘r..t’/etc/passwd

[] :匹配指定范围内的任意单个字符

[^]:匹配执行范围之外的任意单个字符

字符集合:[:digit:]  [:space::]  [::upper::]  [:lower:]  [:alpha:]  [:alnum:]

匹配次数:

* :匹配其前面的字符任意次

a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a*b : a出现任意次,后面跟个b

a.*b: a开头,b结束,中间跟啥都行

.* :这才表示任意长度任意字符

(正则表达式是贪婪模式,尽可能长的匹配。)

\?:表示匹配它前面的字符0次或1次。

a\?b :a出现0次或1次,后面跟个b。

\{m,n\} :匹配其前的字符,至少m次,至多n次。

\{1,\}

\{1,3\}

grep‘a\{1,3\}b’test.txt

grep‘a.\{1,3\}b’test.txt

位置锚定:

^ :此字符后面的字符,必须出现在行首。

$ :锚定行尾,此字符前面的任意内容必须出现在行尾。

^$ : 这个表示空白行。

\

\>或b:锚定词尾,其后面的任意字符必须作为单词的尾部出现。

grep“root\>”test.txt

grep“\

grep“\”test.txt

grep“\broot\b”test.txt

分组:

\(\)

\(ab\)*:ab可以出现任意次。

实现分组的目的,是后面再次引用它。

\1:调用前面第一个小括号内容

\2

\3

例子:

He love his lover

She like her liker

He like his lover

要求前后一样,匹配

l..e

grep‘\(l..e\).*\1’test.txt

grep‘\([[:digit:]]\).*\1$’test.txt

grep -E 扩展正则表达式

-A 显示匹配行的下面的行显示

-B 显示匹配行的上面的行显示

-C 显示匹配行的上下的行显示

grep --color -B 2‘^core id’/proc/cpuinfo

扩展正则表达式

字符匹配

.

[]

[^]

次数匹配

*

?:这里不用加反斜线

+ : (这个基本正则表达式没有的)匹配其前面的字符至少一次。

+? 《===》*

(m,n): 扩展正则表达式不用使用转义字符

位置锚定:

^

$

\>

\<

分组:

( ) 分组

\1,\2,\3

还支持或者

|:or

C|cat  :表示C或者cat,表示整个左边,整个右边。

grep  --color‘(C|c)at’test.txt

grep --color -E‘^[[:space:]]+’/boot/grub/grub.conf

grep -E  =====> egrep

例子:

匹配0-255的数字。

egrep --color‘\’test.txt

例子:找IP地址

匹配(.)本身

\.

egrep‘(\\.){3}\’test.txt

IP 地址

A类1-127

B类128-191

C类192-223

D类

E类

匹配IP地址

分析:\(\.\){2}\.\

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

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

相关文章

伯克利AI研究院解析「反向课程学习」,改善「强化学习智能体」并应用于机器人技术

原文来源&#xff1a;arXiv作者&#xff1a;Wieland Brendel、Jonas Rauber、Matthias Bethge「雷克世界」编译&#xff1a;嗯~阿童木呀、哆啦A亮众所周知&#xff0c;强化学习&#xff08;RL&#xff09;是一种强大的技术&#xff0c;它能够解决诸如移动&#xff08;locomotio…

《Science》评选2017年十大科学突破,看看有哪些吧!

来源&#xff1a;材料科学与工程概要&#xff1a;美国《科学》杂志21日公布了其评选出的2017年十大科学突破&#xff0c;人类首次观测到双中子星并合事件被选为头号科学突破。美国《科学》杂志21日公布了其评选出的2017年十大科学突破&#xff0c;人类首次观测到双中子星并合事…

linux 第三章红帽子,红帽子 Linux_命令全解

118.Ctrlz 把程序放入后台运行-暂停状态&#xff0c;Ctrlc 终止进程&#xff0c;整洁关闭119.jobs 作业列表120.bg [%作业号] 后台恢复运行121.fg [%作业号] 前台恢复运行122.(date;who | wc -l ) >> logfile 聚集命令()&#xff0c;生成subshell全部发送123.echo $? 保…

PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别

数据库 oracle for update of 和 for update区别 select * from TTable1 for update 锁定表的所有行&#xff0c;只能读不能写 2 select * from TTable1 where pkid 1 for update 只锁定pkid1的行 3 select * from Table1 a join Table2 b on a.pkidb.pkid for u…

2017年深度学习重大研究进展全解读

来源&#xff1a;机器之心概要&#xff1a;想知道哪些深度学习技术即将影响我们的未来吗&#xff1f;本文将给你作出解答。2017 年只剩不到十天&#xff0c;随着 NIPS 等重要会议的结束&#xff0c;是时候对这一年深度学习领域的重要研究与进展进行总结了。来自机器学习创业公司…

linux管道符加空格吗,管道符,作业控制,变量以及变量配置文件

一、管道符前面已经提过过管道符 “|”, 就是把前面的命令运行的结果丢给后面的命令。# cat 1.txt | wc -l //显示1.txt文件行数二、作业控制当运行进程时&#xff0c;你可以使它暂停(按CtrlZ组合键)&#xff0c;然后使用fg(foreground的简写)命令恢复它&#xff0c;或是利用bg…

PL/SQL 连接配置

PLSQL连接oracle数据库配置 方法一&#xff1a; 1&#xff09;点击Net Configuration Assistant 2) 在弹出的对话框中选择本地Net服务名配置&#xff0c;点下一步 3&#xff09; 在服务名配置对话框中选择添加&#xff0c;点下一步 4&#xff09;在如下对话框中填写要访问的ora…

自动驾驶汽车硬件与软件技术介绍

来源&#xff1a;知乎概要&#xff1a;本文详细介绍了自动驾驶汽车的硬件和软件&#xff0c;以及所需要做的准备工作&#xff0c;每个研发者或者准备投身于无人驾驶领域的人都应该好好看一下。全球有数不清的公司在忙着研发自动驾驶汽车&#xff0c;他们的产品也千奇百怪&#…

linux数组随机数,随机数与数组

随机数数组变量清屏时间延迟静态网站HTML随机数srand()函数用于播种函数头文件: stdlib.h函数定义: void srand(unsigned int seed)函数功能:设置随机数种子函数说明:通常可以用getpid(获取当前进程的进程识别码)或者time(NULL)(获取当前系统的时间信息)来充当种子&#xff0c;…

DeepMind 的2017:有 AlphaGo,更有社会责任

来源&#xff1a;AI科技评论概要&#xff1a;DeepMind 相信 AI 在更复杂的问题上也能起到同样的作用&#xff0c;它可以是科学技术工具&#xff0c;也可以是人类创造力的倍增器。AlphaGo 团队现在已经把注意力转向了另一组宏伟的目标&#xff0c;DeepMind 自己也希望这些研究人…

脏读、不可重复读和幻读

1. 脏读 &#xff1a;脏读就是指当一个事务正在访问数据&#xff0c;并且对数据进行了修改&#xff0c;而这种修改还没有提交到数据库中&#xff0c;这时&#xff0c;另外一个事务也访问这个数据&#xff0c;然后使用了这个数据。2. 不可重复读 &#xff1a;是指在一个事务内…

c++语言中break的作用,C++ break和continue用法详解

用于 switch 中的 break 语句也可以放在循环中&#xff0c;当遇到 break 时&#xff0c;循环立即停止&#xff0c;程序跳转到循环后面的语句。以下是一个带有 break 语句的循环示例。程序段中的 while 循环看起来要执行 10 次&#xff0c;但 break 语句导致它在第 5 次迭代后即…

2018年人工智能13大预测

来源&#xff1a;英伟达概要&#xff1a;2017 年人工智能领域取得了许多里程碑式的成果。那么&#xff0c;以后人工智能又会如何发展呢&#xff1f;2017年被《华尔街日报》、《福布斯》和《财富》等刊物称为“人工智能之年”。各种深度学习在线课程不断推出&#xff0c;接受相关…

ORACLE 多版本读一致性

先来看看这段代码&#xff1a;while s in (select * from table1) loopinsert into table1 values(s.field1,s.field2,s.field3,s.field4,s.field5);end loop;如果是SQL server的开发人员&#xff0c;看到这段代码&#xff0c;肯定会摇头&#xff1a;这段代码有问题&#xff0c…

自动点名系统c语言,用C语言编写一个随机点名系统

/*编写一个随机点名系统&#xff0c;运行该系统后&#xff0c;按空格键可以显示出一名同学&#xff0c;以前被选中的同学&#xff0c;将不会再次被选中*/#include /*standard input & output*/#include /*standard libary*/#include /*string*/#include /*Console Input/Ou…

2017年全球AI芯片公司大盘点

来源&#xff1a;芯师爷概要&#xff1a;2017年&#xff0c;我们被AI公司的融资信息一次次刷屏&#xff0c;从2千万到1亿美金&#xff0c;让我惊诧道&#xff0c;AI的黄金年代真的来了吗&#xff1f;2017年&#xff0c;我们被AI公司的融资信息一次次刷屏&#xff0c;从2千万到1…

Oracle常用sql操作总结

一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] 字段名1 解释 FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询的时候比较有用 NVL函数可返回多种数据类型: 返回日期 NVL(start_date,2002-02-01) 返回字符串 NVL(title…

51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

/******************************************************************************** 实验名 : 红外控制步进电机1602显示值实验* 使用的IO : 电机用P2口* 实验效果 : LCD1602显示出读取到的红外线的值&#xff0c;步进电机作出…

邬贺铨:工业物联网的技术与前景

来源&#xff1a;走向智能论坛概要&#xff1a;工业物联网是企业信息化的进程&#xff0c;我们经历了流程电子化、管理数字化、生产自动化到企业互联网化和企业智能化。邬贺铨&#xff1a;工业物联网靠花钱是买不到的&#xff01;12月20日&#xff0c;2017第八届中国物联网产业…

约瑟夫问题C语言加注释,用链表实现约瑟夫环【有注释,有很多注释】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼主要问题在于删除约瑟夫环的数,结果一直出不来,看了好几天改了好几次都改不对#include #include typedef struct ysf{int num;struct ysf*next;}YSF;YSF*creat(int aa[]){int i;YSF *headNULL,*p1NULL,*p2NULL;headp1p2(YSF*)mallo…