正则表达式之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次;

\<: 锚定词首,用法格式:\<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:二选一

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...