正则表达式之grep,egrep用法
grep正则表达式
grep这个名令是用来查找并显示符合给定条件的行的,其用法可以简单的描述为
grep 选项 ‘模型’文件
先做个简单的示范,比如我们要查找~/etc/passwd中含有root这个字符串的行
命令 grep ‘root’ /etc/passwd,为了显示效果明显呢,我们加个高亮命令
grep --color=auto‘root’/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-9,A-Z,a-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:二选一
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |