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}\.\
linux模式匹配运算符,linux之正则表达式相关推荐
- linux命令行 正则,在Linux命令行中使用正则表达式
上一节我们介绍过grep命令在搜索文本信息时的基本用法,其实,grep命令还可以配合正则表达式执行更加复杂的搜索操作. 本节我们将对如何在Linux命令行中使用正则表达式进行介绍. 所谓正则表达式,就 ...
- Linux之旅 9:正则表达式与文件格式化
Linux之旅 9:正则表达式与文件格式化 (图片来自常用正则表达式) 什么是正则表达式 正则表达式(简称为正则)可以看做是一种微型标记语言,通过定义一系列符号来灵活地设定一种匹配模式,对目标字符串进 ...
- 模式匹配运算符–Shell
转载:http://www.firefoxbug.net/?p=722 Var=/home/firefox/MyProgram/fire.login.name ${Variable#pattern}: ...
- 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-汇总 ( Chapter1-Chapter16 )
一.初识 Linux shell Linux 系统可划分为以下 4 部分. Linux 内核 GNU 工具 图形化桌面环境 应用软件 内核主要负责以下 4 种功能. 系统内存管理 内核通过硬盘上称为交 ...
- 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-汇总 ( Chapter17-ChapterB )
十七.创建函数 bash shell 提供了用户自定义函数功能,可以将 shell 脚本代码放入函数中封装起来. 函数是一个脚本代码块,你可以为其命名并在脚本中的任何位置重用它.每当需要在脚本中使用该 ...
- THREE DAY | 网络安全之Linux(包含Linux常用命令,镜像下载,docker命令等内容)超详细!!!
THREE DAY | 网络安全之Linux 一.Linux介绍 1.Linux系统简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多 ...
- 史上最牛的Linux视频教程—兄弟连Linux笔记
最近在看兄弟连2014年录制的Linux教学视频,沈超和李明这两个活宝讲得确实是精彩,顺着教学视频讲解的逻辑顺序做了一些笔记,教学视频链接https://www.bilibili.com/video/ ...
- linux日期日增,Linux日期
Linux date命令 Linux date命令用于显示日期,时间,时区等.它还用于设置Linux系统的日期和时间.通常,它用于以不同的格式显示日期并计算一段时间内的日期. 句法: 选件 以下是da ...
- linux 同步方法剖析,Linux 同步方法剖析
级别: 中级 M. Tim Jones (), 顾问工程师, Emulex 2007 年 11 月 19 日在 学习 Linux® 的过程中,您也许接触过并发(concurrency).临界段(cri ...
最新文章
- XAML实时显示更新插件LiveXAML
- python 字典循环_Python字典遍历操作实例小结
- python访问数据库日志文件_python利用inotify实现把nginx日志实时写入数据库
- MX130+python3.7.6+CUDA 10.0+CUDNN 7.4.2+TensorFlow-gpu安装
- 这十个好习惯助你摆脱消极的态度
- python求导函数的值_python怎么实现函数求导
- Numpy实现酒鬼漫步问题【以及randint()、where()、cumsum()、argmax()的用法详解】
- 入门级控件 c# 1615014955
- 数据库中字段随机添加汉字
- Chart控件X轴显示不全的解决方法
- 推荐系统技术演进趋势:排序篇
- 基于SpringBoot的后台管理系统(异常、注解、node、page)(二)
- linux 格式化 lvm2,LVM2
- Eclipse创建并运行Java程序输出Hello World
- 手机微信html代码,html5 css3手机微信ui界面代码
- 【测试开发】软件测试——测试用例设计测试分类详解
- 管网平差c语言编程,哈工大给水管网平差软件
- origin图上显示数据标签_Origin中如何将曲线上的数据显示出来?
- WebRTC桌面共享手动停止
- 【Pygame小游戏】真香~这款百万销量万人追捧大富翁游戏终于出现了~(赶紧来玩儿)
热门文章
- 论文浅尝 | 基于RNN与相似矩阵CNN的知识库问答
- 论文浅尝 | 弱监督关系抽取的深度残差学习方法
- java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法
- (摘要)新基建风口下,今年工业互联网平台将呈现十大新特征
- DeepMind最新研究:如何将「大语言模型」 训练到最优?
- 战斗机嵌入式训练系统中的智能虚拟陪练
- Linux磁盘及文件系统(二)Linux下磁盘命名和分区
- table数据表 边框特效
- javaweb简要介绍,虚拟路径,虚拟主机
- Leetcode--42.接雨水