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

正则表达式之grep,egrep用法

发布时间:2020-12-14 02:19:21 所属栏目:百科 来源:网络整理
导读:grep 正则表达式 grep 这个名令是用来查找并显示符合给定条件的行的,其用法可以简单的描述为 grep 选项 ‘模型’文件 先做个简单的示范,比如我们要查找 ~/etc/passwd 中含有 root 这个字符串的行 命令 grep ‘ root ’ /etc/passwd, 为了显示效果明显呢,

grep正则表达式

grep这个名令是用来查找并显示符合给定条件的行的,其用法可以简单的描述为

grep 选项 ‘模型’文件

先做个简单的示范,比如我们要查找~/etc/passwd中含有root这个字符串的行

命令 grep root/etc/passwd,为了显示效果明显呢,我们加个高亮命令

grep --color=autoroot/etc/passwd,结果如下

为了显示效果直观和输入简便,这里用alias命令

alias grep=grep --color=auto,注意这里得加引号,单双引号都行

接下来,我们来详细的介绍一下grep的元字符

^:锚定行首,用法

$:锚定行尾,用法

^字符串$:行首行尾都是所选字符串

^$:查找空白行,这里我们引入管道至wc -l,就能看到空白行的个数

这里我们使用nano命令创建个hu.txt,里面我们可以随便写入内容

. :匹配任意单个字符

* 匹配紧挨在其前面的字符任意次

.*匹配任意长度的任意字符

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

[:lower:]a-z[:upper:]A-Z[:digit:]0-9[:alpha:]A-Z,a-z[:alnum:]0-9A-Za-z[:space:]:任何会产生空白的字符、[:punct:]:标点符号。

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

?: 匹配紧挨在其前面的字符0次或1次;

{m,n}: 匹配其前面的字符至少m次,至多n次;

{0,n}: 至多n次;0-n次;

{m,}:至少m

{m}: 精确匹配m次;

&;: 锚定词首,用法格式:&;patternb: bpattern

&;: 锚定词尾,用法格式:pattern&;b: patternb

&;pattern&;:锚定单词

(): 分组,用法格式: (pattern)

这里注意 命令里面的1,当前面有2组或者3组字符串的时候,2,3分别表示和2或3组的字符串保持一致

grep的选项:

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

-o: 只显示被模式匹配到的字串,而不是整个行;

-i: 不区分字符大小写;

-A #:显示匹配到的行时,顺带显示其后面的#个行;

-B #:前面的#行;

-C #:前后的#行;

-E: 使用扩展的正则表达式

grep -E = egrep

补充:涉及到变量替换的时候,要用双引号

egrep 扩展正则表达式

.: 任意单个字符

[]:

[^]:

*

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

?:

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

():分组,支持引用1,2;

a|b: 二选一;

&;

&;

^

$

其中大部分用法同grep,多出+a|b

+相当于{1,},因此并不难,切记,此处不加

a|b:二选一

(编辑:李大同)

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

    推荐文章
      热点阅读