加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 21:57:23 所属栏目:百科 来源:网络整理
导读:grep系:grep,egrep,fgrep,文本搜索工具,基于PATTERN对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下。 grep: grep [OPTIONS] PATTERN [FILE...] PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。 正则表达式元字符: 会

grep系:grep,egrep,fgrep,文本搜索工具,基于PATTERN对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下。

grep:

grep [OPTIONS] PATTERN [FILE...]

PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。

正则表达式元字符:

会被正则表达式引擎解释为特殊含义。 pcre――perl语言的正则表达式引擎。

基本的正则表达式:BRE

扩展的正则表达式:ERE

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

egrep默认仅支持扩展正则表达式

fgrep默认不开启正则表达式引擎

文本字符:

只具备字符片面含义的那些字符

常用选项:

-i,--ignore-case 忽略文本字符的大小写

-v,--invert-match 反向匹配,最终显示的结果是PATTREN不能匹配的行

-c,--count 统计匹配PATTERN的所有的行数

-o,--only-matching 关闭贪婪模式,仅显示PATTERN能匹配的内容

-q,--quiet,--silent 不输出任何匹配结果

--color[=WHEN],--colour[=WHEN] 将匹配的PATTREN的内容以特殊颜色显示

-E,--extended-regexp 扩展的正则表达式 grep-E 相当于egrep

-F,--fixed-strings,--fixed-regexp 相当于fgrep

-G,--basic-regexp 基本的正则表达式,egrep -G相当于grep

-P,--perl-regexp 使用PCRE引擎

-A NUM,--after-context=NUM 在显示匹配PATTERN的行同时显示其后面的NUM行

-B NUM,--before-context=NUM

PATTERN;

正则表达式元字符:

基本正则表达式元字符:

GLOBBING-------简化版的正则表达式: [] ? *

字符匹配:

.:匹配任意单个字符

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

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

下列所有的字符集都可以放置于[]之中匹配单个字符

[:lower:]

[:upper:]

[:alpha:]

[:digit:]

[:space:] 空格

[:alnum:]

[:punct:]

[:blank:]

[:xdigit:]:所有的十六进制数字

a-z:所有的小写字母

A-Z:所有的大写字母

0-9:所有的十进制数字

次数匹配: 该类字符之前的那个字符可以出现的次数

*:其前面的字符可以出现任意次(0次,1次或多次)

?:其前面的字符可有可无(0次或一次)

+:其前面的字符至少出现一次(1次或多次)

{m}:其前面的字符必须出现m次

{m,n}:至少出现m次,至多出现n次 (m<n)

{,n}:其前面字符至多出现n次,至少出现0次

{m,}:其前面字符至少出现m次

在正则表达式中,表示任意长度任意字符的方式:.*

位置锚定字符:

行锚定:

行首锚定:^

行尾锚定:$

字锚定:

字首锚定:&;或b

字尾锚定:&;或b

b:旧版本中的锚定方法,建议不使用

对于正则表达式的引擎来说,字是由特殊字符组成的连续字符串

分组与引用字符:

(PATTERN):将此PATTERN所匹配到的所有字符当做一个不可分割的整体来处理。

在正则表达式引擎中,有一系列内置变量,这些变量会保存所有分组内的字符信息,用于反向引用,这些变量依次是:1,2,3...

..

或:

|

注意:|将其左右两边的字符串当整体对待。

A|american:A或american

请找出ifconfig命令中数值在100-255之间的整数:

第一位:1 2

第二位:0-9 0-4 5

第三位:0-9 0-9 0-5

ifconfig | grep '&;(1[0-9][0-9]|2[0-4][0-9]|25[0-5])&;'

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

默认情况下,grep命令后面只允许有一个PATTERN;

如果想要在依次grep搜索中写多个PATTERN,则需要-e选项,每个-e选项只能使用一个PATTERN作为参数;

将所需要的PATTERN写入到一个文件中,保证每行只有一个PATTERN,我们就可以使用-f的方式实现多PATTERN的匹配;

egrep: 下列用法和grep一样

扩展的正则表达式元字符:

字符匹配:

.

[]

[^]

次数匹配:

*

?

+

{m}

{m,n}

{m,}

{0,n}

位置锚定:

^

$

&;,b

&;,b

分组和引用:

()

1,3...

或:

|

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读