grep和egrep的使用

grep是linux中使用最广泛的命令之一, 缩写来自Globally search a Regular Expression and Print,是一种强大的文本搜索工具。grep支持使用正则表达式搜索文本,根据用户指定的模式对目标文件逐行搜索并显示出能够被匹配到的行,默认将结果打印到标准输出。

Linux使用的是GNU版本的grep,包含grep,egrep和fgrep3种格式:

grep:标准grep,支持正则表达式。

egrep:扩展正则表达式,支持基本及扩展正则表达式,通常情况下可以等效于grep E。

fgrep:快速grep,仅允许查找字符串而不是模式,因此不能使用正则表达式,等效于grep F。

grep的语法:

grep [-options] pattern [file……]

pattern通常是一个正则表达式,因此想要熟练的使用grep就必须学会使用正则表达式。

正则表达式是一种指定字符串模式的间接方式,通常简写为regex或re。

grep 使用的基本正则表达式和egrep使用的主要区别:基本正则表达式?,+,|不能使用,(),{}必须用/转义。

对于GNU grep来说,扩展正则表达式更为实用,因此可以创建别名,为grep默认添加 E选项。

alias grep=`egrep`或alias grep=`grep E`

如果想要使别名永久生效,可以写入配置文件~/.bashrc

以下为常用的egrep正则表达式的语法:


元字符


描述


示例


^


行首锚定符


^love 匹配所有以love开头的行


$


行尾锚定符


love$ 匹配所有以love结尾的行


.


匹配任意单个字符


Lov. 匹配lova,lovb或love等


[]


匹配包含在[]内的单个字符


love[abc] 匹配lovea,loveb或lovec


/<


锚定单词词首


/<love 匹配love开头的位置


>/


锚定单词词尾


Love>/ 匹配love结尾的位置


[^]


匹配不包含在[]内的单个字符


love[^12] 匹配从love3到love9


[-]


匹配在[]指定范围内的单个字符


[1-5] 匹配1,2,3,4,5中的一个字符


|


逻辑运算符或 匹配|两边的任意一项


Love(a | b) 匹配lovea 或loveb


\


转义特殊字符


lov\.e 匹配lov.e而不是lovae,lovbe


()


创建用于匹配的字符串


([0-9]{1,3}\.){3}[0-9]{1,3} 匹配ip地址

正则表达式:基本匹配


运算符


描述


示例


?


匹配前一项0次或1次


love? 匹配lov或love 不能匹配lovee


+


匹配前一项1次或多次


love+ 匹配love或lovee 不能匹配lov


*


匹配前一项0次或多次


love* 匹配lov,love或lovee


{n}


匹配前一项n次


[0-9]{3} 匹配任意一个三位数


{n,}


匹配前一项至少n次


[0-9]{3, } 匹配任意一个三位数或更多位数


{ ,n}


匹配前一项最多n次


[0-9]{ ,2} 匹配任意一个一位数或两位数


{m,n}


匹配前一项至少m次,最多n次

grep和egrep的使用

时间: 2024-11-07 06:48:55

grep和egrep的使用的相关文章

grep与正则表达式,grep、egrep和fgrep

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大:1基础正则表达式grep 工具,以前介绍过.grep -[acinv]   '搜索内容串'   filename-a 以文本文件方式搜索-c 计算找到的符合行的次数-i 忽略大小写-n 顺便输出行号-v

grep、egrep

正则表达式是基于样式匹配的进行文本处理,透过一些特殊符号的辅助,可以达到搜寻.删除.取代某特定的字符串. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. 我们利用这些返回值就可进行一些自动化的文本处理工作. 正则表达式分为基本正则表达式和扩展正则表达式: grep: 默认支持基本正则表达式. egrep: 扩展正则表达式,是grep的扩展. 元字符:不表示字符本身的意义,而用于额

grep、egrep以及正则表达式的使用

正则表达式是linux学习里面很重要的一部分内容,也算是一个难点,元字符多,组合方法也各种各样,每个人学习理解方法不一样,其中遇到的问题也各不相同, 学习正则表达式首先要会的是grep以及egrep命令的使用. grep 是Globalsearch Regular expression an Print out the line的缩写,是一种文本搜索的工具,可以根据用户指定的"模式(pattern)"对目标文本进行搜索过滤,显示出被"模式"匹配到的行.这里要说的一点

Linux正则表达式grep与egrep

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

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下grep.egrep及相应的正则表达式和用法                       一.简介      Linux上文本处理三剑客(引用自马哥教育 ):  grep, egrep, fgrep:文本搜索工具:基于"pattern"对给定文本进行搜索操作:     sed:Stream EDitor,流编辑器,行编辑工具:文本编辑工具:     awk:GNU awk,文本格式化工具:文本报告生成器:         grep (缩写来自Globally se

正则表达式及grep、egrep等工具的使用

一.何为正则表达式 正则表达式是自定义的,linux文本工具(如grep,sed)用来过滤文本的模式模板,linux工具能够在数据流向工具时对数据进行正则表达式模式匹配,数据能匹配模式则会被接受进行下一步处理(如显示.删除.替代等).正则表达式在shell和linux中的地位非常重要,透过正则表达式强大的字符串处理能力,我们可以从大量的数据中快速检索出仅符合需要的数据进行分析,由此给工作带来极大的便利 二.正则表达式的分类 正则表达式包括基本正则表达式(basic regular express

grep和egrep命令及相应的正则表达式用法总结

作为Linux上文本处理三剑客之一的文本搜索工具,grep和egrep是基于"pattern(模式)"对给定文本进行搜索操作. 正则表达式: 即 Regular Expression 缩写为REGEX. 是由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意义,而是用于表示控制或通配的功能. 正则表达式分类: 基本正则表达式:BRE (Basic Regular Expression) 扩展正则表达式:ERE (Extend Regular Expression) 正则表达式

Linux三剑客之grep、egrep及正则表达式使用详解

Linux三剑客是Linux中非常强悍的文本处理工具,掌握三剑客,文处理已想必会有三剑在手,天下我有的感觉,三剑客之grep家族擅长文本搜索,支持以正则表达式进行文本搜索,使得grep非常强悍,以下内容就grep,egrep和正则表达式展开 Linux文本工具三剑客:        grep.egrep.fgrep:文本搜索工具 sed:流编辑器,也是行编辑器 awk:文本格式化工具,文版报告生成器 正则表达式:是由一类字符所书写出的模式(pattern) 作用:配合支持使用正则表达式的文本搜索