加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

正则表达式之grep,egrep用法

发布时间:2020-05-23 15:24:04 所属栏目:程序设计 来源:互联网
导读:grep正则表达式 grep这个名令是用来查找并显示符合给定条件的行的,其用法可以简单的描述为 grep 选项 ‘模型’文件 先做个简单的示范,比如我们要查找~/etc/passwd中含有root这个字符串的行 命令 grep ‘root’ /etc/passwd,为了显示效果明显呢,我们加个高

grep正则表达式

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

grep 选项 ‘模型’文件

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

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

grep --color=auto‘root’/etc/passwd,结果如下

正则表达式之grep,egrep用法

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

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

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

^:锚定行首,用法

正则表达式之grep,egrep用法

$:锚定行尾,用法

正则表达式之grep,egrep用法

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

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

正则表达式之grep,egrep用法

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

. :匹配任意单个字符

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

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

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

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

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

正则表达式之grep,egrep用法

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

正则表达式之grep,egrep用法

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

正则表达式之grep,egrep用法

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

正则表达式之grep,egrep用法

{m,}:至少m次

正则表达式之grep,egrep用法

{m}: 精确匹配m次;

正则表达式之grep,egrep用法

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

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

<pattern>:锚定单词

正则表达式之grep,egrep用法

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

正则表达式之grep,egrep用法

这里注意 命令里面的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:二选一

正则表达式之grep,egrep用法

(编辑:安卓应用网)

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

    推荐文章
      热点阅读