Linux基础(10)论grep 与egrep的区别

egrep或者grep -E与grep相比进行文本匹配的时候使用的扩展的正则表达式,那么扩展的正则表达式与正则表达式有什么区别呢?

1基本的正则表达式:

字符匹配:

.: 任意单个字符

[]: 某一字符集中的单个字符  例如[0-9]表示任意个位数

[^]:不属于某一字符集中的单个字符 例如[^[:space:]]表示任意非空白字符

次数匹配:

*:任意次

\?: 0或1次

\{m,n\}:至少m次,至多n次;

.*: 任意长度的任意字符

锚定:

^: 行首锚定

$: 行尾锚定

\<, \b:词首

\>, \b:词尾

元组引用:

\(\)

\1, \2, \3, ...

====================================================================================

2.扩展的正则表达式

字符匹配:

.

[]

[^]

次数匹配:

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

?: 匹配前面的字符0次或者1次

+: 匹配其前面的字符至少1次

{m,n} 匹配前面的字符至少m次,至多n次   注意:与基本正则表达式相比 不需要再转义

位置锚定:

^  行首

$  行尾

\<  或者\b ###  词首

\>  或者 ###\b  词尾

元组:

():元组  注意 :与基本正则表达式相比,不需要再转义

\1, \2, \3, ...

或者

|: or

注意:这是扩展正则表达式才有的功能 若要grep支持,必须用grep -E

注意: 用于选择的内容必须加入到括号中

(C|c)at: Cat或cat

C|cat  :C 或者cat

由比较可知,基本正则表达式与扩展正则表达式的区别在于

1.次数匹配上,扩展正则表达式多了一个+代表匹配前面的字符至少一次 相当于\{1,\}

2.扩展正则表达式{m,n}不再需要转转义

3.扩展正则表达式的分组()也不再需要转义

4.正则表达式多了一个或者|

那么我们在文本模式匹配的时候可以考虑使用扩展的正则表达式,从而避免使用过多的转义字符\

时间: 2024-10-06 07:52:37

Linux基础(10)论grep 与egrep的区别的相关文章

Linux文本过滤搜索器grep与egrep的常用正则表达式与用法

grep家族中的grep及egrep的相应的正则表达式和用法. 1.grep家族是文本处理三大剑客之一.(grep,sed,awk) grep: (Global search REgular expression and Print out the line).其支持使用基本正则表达式. egrep:支持使用扩展正则表达式 fgrep:不支持使用正则表达式(一般在大型web网站日志搜索时所使用) grep的作用:过滤查找关键词并打印匹配的行. grep的用法: grep [选项] 匹配模式 [文

编程语言和shell编程的基础内容以及grep、egrep命令及相应的正则表达式和用法

bash的特性之多命令执行的逻辑关系: 1.命令替换(命令之间无明确的逻辑依赖关系) COMMAND1 $(COMMAND2) 2.管道(命令之间无明确的逻辑依赖关系) COMMAND1 | COMMAND2 | COMMAND3 前面的命令无论执行成功与失败后面命令继续执行:管道命令的前一个命令应该有标准和输出否则用":"隔开 例如:useradd sola :echo 456 | passwd --stdin sola 3.顺序执行结构 COMMAND1:COMMAND2:COMM

Linux学习笔记:grep、egrep

文本处理三剑客: grep系:grep .egrep .fgrep ,文本搜索工具,基于"PATTERN"对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下. sed:Stream EDitor,流编辑器,行编辑器,文本编辑工具: awk:gawk--GUN awk,文本格式化工具,文本报告生成器,文本处理的编程语言: grep系: grep:利用正则表达式进行全局搜索并将匹配的行显示出来: grep [OPTIONS] PATTERN [FILE.....] PATTERN:

linux的正则、grep及egrep介绍

正则介绍: 解释对"正则表达式"的定义是:它使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.在很多文本编辑器或其他工具里,正则表达式通常用来检索和替换那些符合某个模式的文本内容.许多程序设计语言也都支持利用正则表达式进行字符串操作.对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,还是查询某个日志文件并分析其内容,都会用正则表达式. 其实正则表达式只是一种思想.一种表示方法.只要我们使用的工具支持这种表示方法,那么这个工具就可以处理正则表达式的字符

linux基础10

周期性计划任务crontab命令系统服务:/etc/init.d/crond(crond必须启动才会生效)用户计划:/var/spool/cron/用户名默认的计划任务全局配置:/etc/crontab系统计划:/etc/cron.hourly/*(每小时要执行) /etc/cron.daily/*(每天要执行) /etc/cron.weekly/*(每星期要执行) /etc/cron.monthly/*(每月要执行)[[email protected] 桌面]# rpm -qa | grep

linux基础篇-12,grep正则表达式与扩展正则表达式

################################################ 基本正则表达式:grep 使用正则表达式定义的模式来过滤文本 grep -i :不区分大小写 --color -v:显示没被匹配的任意行 -o:只显示被匹配的字符串 -E 扩展的正是表达式 =egerp -A#:#为数字 -B#: -C#: [[email protected] testcp]# grep -o 'root' /etc/passwd --color root root root ro

Linux基础命令之grep

grep : 根据pattern(模式)搜索文本,并将符合模式的文本行显示出来,并不会修改原文件. 用法: grep  [options]   ‘ pattern ‘  /file       #也可以利用管道进行匹配 -i  ignore  忽略大小写 --colour  将匹配的字符串加颜色. -v  反向查找,显示与pattern不匹配的行 -o  只显示被模式匹配到的字符串 正则表达式  REGular EXPression 工作在贪婪模式下,尽可能多的去匹配. 元字符: .  :匹配任

【Linux基础 10】其他命令

目标 查找文件 find 软链接 ln 打包和压缩 tar 软件安装 apt-get 01. 查找文件 find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件 序号 命令 作用 01 find [路径] -name "*.py" 查找指定路径下扩展名是 .py 的文件,包括子目录 如果省略路径,表示在当前文件夹下查找 之前学习的通配符,在使用 find 命令时同时可用 有关 find 的高级使用,在就业班会讲 演练目标 搜索桌面目录下,文件名包含 1 的文件 fin

Linux正则表达式grep与egrep

Linux正则表达式grep与egrep 正则表达式:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容.其实正则表达式,只是一种思想,一种表示方法.只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串.常用的工具有grep, sed, awk,这三个都是针对文本的行才操作的. grep  过滤器语法: grep  [-cinvABC]  'word'  filenam