grep、egrep及相应的正则表达式用法

Linux系统中grep,egrep命令是一种强大的文本搜索工具,它们能使用正则表达式和扩展正则表达式搜索文本,并把匹配到的行打印出来。

  1. 搜寻特定字符串"the"  注: n为显示行号

# grep -n ‘the‘ regular_express.txt

2.使用-v选项反向搜寻特定字符串"the"

# grep -vn ‘the‘ regular_express.txt

3.匹配大小写"the"的这个字符串,使用-i选项

# grep -in ‘the‘ regular_express.txt

4.[] 表示匹配"[]"范围内的字符串

搜索test或tast这两个单词时,发现他们有共同的‘t?st‘,所以可以这么搜寻

# grep -n ‘t[ae]st‘ regular_express.tx

注: 大写英文/小写英文/数字 可以使用 [a-z]/[A-Z]/[0-9]等方式来书写,也可以写在一起

[a-zA-Z0-9]表示要求字符串是数字以及英文

如果我们要取得有数字的那行,则:

# grep -n ‘[0-9]‘ regular_express.txt

也可以用

[[:lower:]]  代替a-z

[[:digit:]]  代替0-9

[[:upper:]]:所有大写字母;

[[:lower:]]:所有小写字母;

[[:digit:]]:所有的数字;

[[:alpha:]]:所有字母;

[[:space:]]:空白字符;

[[:punct:]]:标点符号;

例:# grep -n ‘[^[:lower:]]oo‘ regular_express.txt

# grep -n ‘[[:digit:]]‘ regular_express.txt等

5.[^] 表示匹配"[]"范围之外的字符串,例如[^0-9]表示非数字字符,[^A-Z]表示非大写字符范围

如果我们要取得没有数字的那行,则:

# grep -n ‘[0-9]‘ regular_express.txt

6.^word表示匹配的字符串(word)在行首

显示行首为‘the‘的字符串

# grep -n ‘^the‘ regular_express.txt

显示行首是小写字符

# grep -n ‘^[a-z]‘ regular_express.txt

7.word$表示匹配的字符串(word)在行尾

显示行尾为点 . 的那一行

# grep -n ‘\.$‘ regular_express.txt

显示空白行

# grep -n ‘^$‘ regular_express.txt

8.  .号表示匹配1个任意字符

找出g??d字符串,起头g结束d的四个字符串

# grep -n ‘g..d‘ regular_express.txt

9. *表示匹配0到无穷多个(正则表达式)前一个字符

"goo*g"代表gog,goog,gooog...等

# grep -n ‘goo*g‘ regular_express.txt

10. \?表示匹配前面的字符0次或1次

匹配o字符0次或一次

# grep -n ro\?t regular_express.txt

11. \+匹配前面的字符至少一次

匹配至少含有一个o字符的字符串

grep -n ro\+t regular_express.txt

注:   .号代表任意字符, .*则就代表空字符或者一个到N个任意字符

找出含两个g中间含有任意个字符的字符串

# grep -n ‘g.*g‘ regular_express.txt

\表示转义字符,在特殊字符前加\会将原本的特殊字符意义去除

注:{}因为在shell里有特殊意义,所以需要加转意符\来让其失去意义

12. \{m,n\}表示找出n到m个(正则表达式)前一个字符

找出含两个o的字符串

# grep -n ‘o\{2\}‘  regular_express.txt

找出g后含2到5个o然后以g结尾的字符串

# grep -n ‘go\{2,5\}g‘  regular_express.txt

13. \{n,\}表示n个以上的前一个RE字符

找出g后含2以上的o然后以g结尾的字符串

# grep -n ‘go\{2,\}g‘  regular_express.txt

14. \<或\b表示词首锚定

找出以“ro”字符串位于单词首的字符串

# grep -n "ro\<" regular_express.txt

15. \>或\b 表示词尾锚定

找出以“ro”字符串位于单词尾的字符串

# grep -n "\>ro" regular_express.txt

egrep支持使用扩展正则表达式,与grep用法基本相同,区别在于egrep除了词尾锚定和词尾锚定

时"<"">"符号要用"\"来转意,其它符号则不用,

范例:

1. + 表示重复一个或一个以上的前一个RE字符

范例:egrep ‘go+d‘ regular_express.txt

表示搜寻(god)(good)(goood)...等等字符串,o+代表[一个以上的o]

2. ? 表示重复零个或一个的前一个RE字符

范例:egrep ‘go?d‘ regular_express.txt

表示搜寻(gd)(god)字符串,o?代表[空的或1个o]

3. () 表示找出群组字符串

范例:egrep ‘g(la|oo)d‘ regular_express.txt

表示搜寻(glad)或(good)字符串

4. ()+ 表示找出多个重复群组的判别

范例: echo ‘AxyzxyzxyzxyzxyzC‘|egrep ‘A(xyz)+C‘

表示搜寻开头是A结尾是C,中间有一个以上的‘xyz‘字符串

其余用法不在详细举例,可模仿grep用法:

范围匹配:

.号表示匹配任意单个字符

[ ]:匹配范围内的任意单个字符

[^ ]:匹配范围外的任意单个字符

次数匹配:

*:匹配任意次

?:匹配0次或1次

+:匹配1次或多次

{m}:匹配匹配m次

{m,n}:匹配至少m次,至多n次

{0,n}:匹配至少0次至多无限次

{m,}:匹配至少m次

位置匹配:

^ 表示行首锚定

$ 表示行尾锚定

\<或\b 表示词首锚定

\>或\b 表示词尾锚定

时间: 2024-10-12 20:49:31

grep、egrep及相应的正则表达式用法的相关文章

grep, egrep及相应的正则表达式用法详解

grep, egrep及相应的正则表达式用法详解 一.grep/egrep Global search REgular expression and Print out的简写,是一种强大的文本搜索工具,它根据用户指定的文本模式(正则表达元字符以及正常字符组合而成)对目标文件进行逐行搜索,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. linux使用GNU版本的grep.它功能更强,可以通过-E.-F命令行选项来使用egrep和fgrep的功能(fgrep不使用

grep egrep及相关的正则表达式用法

一.什么是正则表达式 在编写处理字符串的时候,经常需要查询某些符合复杂规则的字符串,正则表达式就是描述这些规则的工具. 正则表达式有基本表达式和扩展正则表达式.扩展正则表达式,是基本正则表达式的补充.有些元字符,稍有不同. 二.正则表达式的组成部分: 由元字符及正常字符所书写,元字符不表达字符本意,而表达控制或通配的功能: 2.1基本正则表达式/扩展正则表达式元字符 字符匹配:[基本/扩展正则表达式元字符相同] 基本/元字符: 扩展/元字符: 说明: . . 匹配任意单个字符 [] [] 匹配指

Linux grep,egrep及相应的正则表达式用法详解

linux在进行文本处理过程中的文本搜索工具称为正则表达式.文本搜索工具有grep.egrep.fgrep,egrep为正则表达式的扩展正则表达式,fgrep用于搜索文本字符串,与 grep 和 egrep 命令不同,因为它搜索字符串而不是搜索匹配表达式的模式.grep的含义为: global search Regular expression and Print out the line. 正则表达式(REGular EXPression REGEXP)是由元字符及正常字符所书写的模式,其中的

Linux正则表达式grep,egrep 及相应的正则表达式用法详解

一.正则表达式介绍: 所谓正则,又称正则表达式.正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作"匹配"): 2. 可以通过正则表达式,从字符

grep egrep 用法以及其相应的正则表达式

grep egrep 用法以及其相应的正则表达式 一.grep.egrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法. 1.grep的定义: grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串

通配符和正则表达式-grep,egrep,fgrep

通配符和正则表达式-grep,egrep,fgrep 通配符和正则表达式,通配符用于文件名匹配,命令支持ls,cp,rm等;正则为通用匹配,命令支持grep,awk,sed,vi,find等.文本过滤工具grep,egrep,fgrep 通配符 *  匹配零个或多个任意字符 ?  匹配单个任意字符 [] 匹配指定范围内的一个字符,[]括号中的 字符间隔符 可以省略,如,\=:等等.举例[1:2=3,5\7] = [12357],也推荐使用这种省略写法作为标准 ^  取反,表示非.注意:非数字即包

linux常用命令-grep,egrep,regexp

grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATTERN [FILE...] -i(忽略大小写) [[email protected] ~]# grep root /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[[email protected] ~]# --c

linux下grep、egrep及相应的正则表达式和用法

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

grep, egrep, 基本正则表达式及扩展表达式学习及用法

讲grep与egrep之前,我们先要知道grep与egrep是两种文本搜索工具.而文本搜索类工具就是根据用户指定的"模式(pattern)"对目标文本进行过滤,显示被模式匹配到的行. 正则表达式其定义:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能:(Global search REgular expression and Print out the line.) 正则表达式分类: 基本正则表达式(grep) 扩展正则表达式(egrep) 正则表达式的