grep、egrep

正则表达式是基于样式匹配的进行文本处理,透过一些特殊符号的辅助,可以达到搜寻、删除、取代某特定的字符串。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。

我们利用这些返回值就可进行一些自动化的文本处理工作。

正则表达式分为基本正则表达式和扩展正则表达式;

grep: 默认支持基本正则表达式。

egrep: 扩展正则表达式,是grep的扩展。

元字符:不表示字符本身的意义,而用于额外功能性的描述,只有一部分文本处理工具支持它;

基本正则表达式:

\:转义符,可以将下面的特殊字符转义成普通字符。a\.b 匹配a.b、ca.b,不能匹配acb; a\*b匹配a*b、a*bb

从文件file包含有这个a*b.ab的那一行 
grep "a\*b\.ab" file

^:行起始标记。^te匹配所有以te开头的行

从文件file匹配以the开头的那一行 
grep "^the" file

$:行尾标记,锚定行的结束 如:end$匹配所有以end结尾的行

匹配空白行
grep "^$" file

[]:匹配包含在 [字符] 之中的任意一个字符。te[abc]匹配tea、teb


匹配以te开头后跟的字符是a、b、c的行
grep "^te[abc]" file

[^]:匹配不包含在 [字符] 之中的任意一个字符。te[^abc]匹配ted、te1,不匹配tea、teb

匹配不是以s 、S开头的行
grep "^[^sS]" file

[-]:匹配[ ]中指定范围的内的任意一个字符。

[a-z]:所有小写字母

[0-9]:所以数字

[a-zA-Z]:所以的大小写字母

匹配以小写字母开头的行
grep "^[a-z]" file

\?:匹配之前项的1次或0次。a\?b匹配b、ab、aab、acb

grep "a\?b" file

*:匹配之前项任意次。a*b匹配b、ab、aab、acb、aaaaaab

grep "a*b" file

\( \):创建一个用于匹配的子串。 \(ab\): ab, aab, abb, abab

a任意一个字符b任意字符a任意一个字符b(前后两个任意一个字符要相等,后面的“a任意一个字符b”是完全参照第一“a任意一个字符b”): \(a.b\).*\1

grep "\(a.b\).*\1" file

\{n \}:匹配之前项n次。[0-9]\{2\}匹配任意两位数

grep "[0-9]\{2\}" file

\{n ,\}:匹配之前项至少需要n次。[0-9]\{2,\}匹配任意两位数或任意更多数字

grep "[0-9]\{2,\}" file

\{n ,m\}:匹配之前项必须匹配最小n次和最大m次。[0-9]\{2,3\}匹配任意两位数或任意三位数

grep "[0-9]\{2,3\}" file

\<:锚定单词的开始,如:‘\<te‘匹配包含以te开头的单词的行。

grep "\<te" file

\>:锚定单词的结束,如‘te\>‘匹配包含以te结尾的单词的行。

grep "te\>" file

[:alnum:] 所有数字和字母。相当于[a-zA-Z0-9]

grep "a[[:alnum:]]b" file

[:alpha:] 所有字母字符,相当于[a-zA-Z]

grep "a[[:alpha:]]b" file

[blank:] 所有空格与制表符

[:digit:] 所有数字,相当于[0-9]

[:lower:] 小写字母相当于[a-zA-Z]

[:upper:] 大写字母相当于[a-zA-Z]

[:punct:] 标点符号

[:space:] 空白字符

在/etc/passwd中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
grep "^[[:space:]]*#[[:space:]]\{1,\}[^[:space:]]"  /etc/passwd
扩展正则表达式(除了上面的特殊字符还支持下面几个字符):
+: 匹配其前面的字符至少1次;
a|b: 二选一;

grep用法: grep [options] ‘pattern‘ file1 file2 ….

grep选项有:

-v: 反向选取,只显示不符合模式的行;

-o: 只显示被模式匹配到的字串,而不是整个行;
 -i: 不区分字符大小写; 
-A #:显示匹配到的行时,顺带显示其后面的#个行;
    -B #:前面的#行; 
-C #:前后的#行; 
-E: 使用扩展的正则表达式 
grep -E = egrep

匹配 1.0.0.1 ~ 223.255.255.254


如果需要在多级目录中对文本进行递归搜索,可以使用

grep、egrep,布布扣,bubuko.com

时间: 2024-11-20 21:01:12

grep、egrep的相关文章

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

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

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

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

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

grep、egrep 详解

grep.egrep搜索工具 你知道怎样在文本中检索出自己需要的数据吗? 对,grep,egrep命令可以做到的不仅仅是这些,让我来介绍一下吧. grep.egrep是什么? grep.egrep都是文本搜索工具 grep.egrep能做什么? 1)根据用户指定的"pattern(过滤条件)"对目标文本逐行进行匹配检查: 2)打印出符合条件的行. 你肯定在想grep,egrep是什么关系? egrep是支持使用扩展正则表达式的grep命令.相当于grep -E grep命令用法介绍:

grep、egrep及正则表达式

一.文本搜索工具中的grep和egrep   grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast

grep、egrep、fgrep及正则表达式

一.介绍 grep.egrep.fgrep命令是linux常用功能非常强大的文本搜索工具,使用正则表达式来搜索文本. grep: (global search regular expression(RE) and print out the line:全文搜索正则表达式并输出.gerp使用基本正则表达式搜索,grep在文件中查找字符串时以"整行"为单位进行数据筛选的.在没有参数的情况下, 只输出符合正则表达式字符串之句子. grep的常见选项如下: -v: 逆反模示, 只输出"

Linux grep、egrep 命令使用示例及详解

一.grep简介 (1). grep (global search regular expression (RE) and print out the line ),[全面搜索正则表达式并把行打印出来]是一种强大的文本搜索工具,他们使用正则表达式搜索文本,并且把匹配的行打印出来. (2).grep家族包括grep.egrep和fgrep,其中egrep和fgrep的命令只跟grep有很小的不同.egrep是grep的扩展,支持更多的(RE)元字符. (3)可用于shell脚本,因为grep通过返

文本搜索之grep、egrep、egrep以及正则表达式

一.grep.egrep.fgrep命令 说明:本文在CentOS 6.6 X86_64系统下grep.egrep.fgrep命令和正则表达式的基本参数和使用格式.方法. 1.1.基本定义: grep(Global search Regular Expression ) and Print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据