Linux的扩展正则表达式

简介:

扩展正则表达式与标准正则表达式的优势在于可以省略一些转义字符
扩展正则表达式的元字符与标准正则表达式的元字符相同
在标准正则表达式的命令中添加一个-E的选项就是扩展正则表达式了。
现在使用相同的需求来演示扩展正则表达式
在/etc/passwd中,不以/bin/bash结尾的行
Linux的扩展正则表达式
在/etc/passwd中,选取包含两位或者三位数的行
Linux的扩展正则表达式
指定出现次数的{}没有与转义字符合用
在/etc/grub2.cfg中至少以一个空白字符开头的,且后面没有空白字符的行
Linux的扩展正则表达式
+号前没有转义字符
yue出现一次或多次的行 在/etc/passwd中
Linux的扩展正则表达式
括号和+号都没有加转义字符
在内容中查找一行中有两个love或者like的行
Linux的扩展正则表达式
在/etc/passwd中查找以root或者zhengyue开头的行
Linux的扩展正则表达式
Linux的扩展正则表达式
Linux的扩展正则表达式
这个例子中,还需要注意一个问题,在标准正则表达式中,分组是需要在扩展前加转义的,在扩展正则表达式中是不需要加转义的。

下面是练习
找出/proc/meminfo文件中,所有以大写或者小写s开头的行,至少三种实现方式
Linux的扩展正则表达式
Linux的扩展正则表达式
Linux的扩展正则表达式
-i的选项是不区分大小写的功能
Linux的扩展正则表达式
上面的例子中,为了匹配括号这两个字符,还是需要在括号前加转义字符,不加转义字符就是分组的意思,在标准的正则表达式中,括号是不需要加转义符的,加了转义符才是分组的意思。
Linux的扩展正则表达式
显示一个目录的基名 不要用basename
-o 只显示匹配到的字符串
思路是从右往左找非/的字符,因为如果有$符号,系统grep匹配是从右往左匹配的,如果没有定位符就是全部匹配,如果有^符号就是从左往右匹配
证明
Linux的扩展正则表达式
命令的意思是找出第一个非/的字符然后匹配的是e字符
Linux的扩展正则表达式
然后非/字符可以有多个
Linux的扩展正则表达式
有时候给出的是目录名,那么目录名后面还可以有一个/字符
Linux的扩展正则表达式
/\?表示可以有一个/字符或者没有/字符
那么显示一个路径的目录名怎么做呢?
Linux的扩展正则表达式
这个命令中,以^(/) 与\1 代表 // 两个字符 echo "/tmp/A/123.file" | grep -o "^(/).*\1"
Linux中目录都是以/开头的 那么目录应该是两个/xxx/之间的内容
Linux的扩展正则表达式
显示ifconfig命令中的IP地址
Linux的扩展正则表达式
定位/etc/passwd 最左一列的字符串
Linux的扩展正则表达式
Linux的扩展正则表达式
如果要找bash与用户名相同的用户呢?
Linux的扩展正则表达式
上面是个失败的例子,上面命令的作用是只要行尾的字符与行中间某个字符相同就是匹配的。
为了能够找到用户名和bash相同就需要使用单词锚定
Linux的扩展正则表达式
而且还必须加上^开始符,不然如果行中间的单词与行尾的单词相同也是可以匹配的。

\

本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2050880


相关文章
|
28天前
|
存储 算法 Shell
【Shell 命令集合 扩展命令】Linux cksum 命令使用教程
【Shell 命令集合 扩展命令】Linux cksum 命令使用教程
28 0
|
28天前
|
存储 Unix Linux
【Shell 命令集合 扩展命令】Linux chgrp命令使用教程
【Shell 命令集合 扩展命令】Linux chgrp命令使用教程
34 1
|
28天前
|
存储 Shell Linux
【Shell 命令集合 扩展命令】Linux chattr命令使用教程
【Shell 命令集合 扩展命令】Linux chattr命令使用教程
31 1
|
2月前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
39 5
|
28天前
|
存储 安全 Shell
【Shell 命令集合 文件管理】Linux显示和修改文件或目录的扩展属性 lsattr命令使用教程
【Shell 命令集合 文件管理】Linux显示和修改文件或目录的扩展属性 lsattr命令使用教程
39 0
|
9天前
|
NoSQL Linux PHP
php添加redis扩展 linux和windos图文详解 l
php添加redis扩展 linux和windos图文详解 l
3 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 扩展命令】Linux cmp命令使用教程
【Shell 命令集合 扩展命令】Linux cmp命令使用教程
23 0
|
2月前
|
Linux Shell
Linux下的Shell基础——正则表达式入门(四)
Linux下的Shell基础——正则表达式入门(四)
25 1
Linux下的Shell基础——正则表达式入门(四)
|
8月前
|
Linux Shell Perl
第十一章、【Linux】正则表达式与文件格式化处理
第十一章、【Linux】正则表达式与文件格式化处理
52 0
|
6月前
|
Linux Perl
[笔记]linux grep之正则表达式
[笔记]linux grep之正则表达式