正则表达式之grep,egrep用法

前端之家收集整理的这篇文章主要介绍了正则表达式之grep,egrep用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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次;

@L_502_9@

\<: 锚定词首,用法格式:\<pattern\b: \bpattern

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

\<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:二选一

猜你在找的正则表达式相关文章