正则表达式之grep与egrep

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

一、正则表达式之grep与egrep
正则表达式:就是用一类字符所书写的模式(pattern)来描述选择的条件;
grep:默认支持基本正则表达式
egrep:扩展正则表达式

二、grep,egrep基本语法

2.1 grep说明
grep [参数] "模式(pattern)" 文件(FILE)
--color=auto :给被匹配到的字符串加上颜色;
-v :反向选取,只显示不符合模式的行;
-o:只显示被匹配到的字符串,而不是整行;
-i:不区分大小写字母;
-E:使用扩展正则表达式;
(grep -E = egrep)

-A #:显示匹配到的后面的#行(eg: -A 2 );
-B #:显示匹配到的前面#行;
-C #:显示匹配到的前后#行;

2.1.1) 基本正则表达式元字符
^:锚定行首符合条件的内容
eg: grep "^ROOT" /etc/passwd
$:锚定行尾符合条件的内容
eg: grep "ROOT$" /etc/passwd

注意:锚定行首行尾 ^ROOT$
锚定空白行 ^$

.:匹配任意单个字符;
*:匹配紧挨在前面的字符任意次(匹配0次,1次,2次...);
.*:匹配任意长度的任意字符;
eg: grep "ab.*ab" File

[]:匹配指定范围内的任意单个字符;
eg: grep "[abc]" FILE
[^]:匹配范围外的任意单个字符;
[a-z]:匹配a到z小写字母任意单个字母;
[A-Z]:匹配A到Z大写字母任意单个字母;
[0-9]:匹配0到9数字任意单个数字;
[:digit:]:所有数字,相当于0-9
[:lower:]:所有小写字母,相当于a-z
[:upper:]:所有大写字母,相当于A-Z;
[:alpha:]:所有的字母
[:alnum:]:所有字母,数字
[:space:]:空白字符
[:punct:]:所有标点符号
eg: grep "^[0-9][a-z]$" FILE

\?:匹配紧挨在前面的字符0次或1次;
\{m,n\}:匹配其前面的字符至少m次,至多n次;
\{0,n\}:匹配至多n次,0-n次;
\{m,\}:匹配至少m次;
\{m\}:精确匹配m次;
eg:grep "a\{1,5\}" FILE

\<:锚定词首
eg: grep "\<b" FILE

\>:锚定词尾
eg: grep "b\>" FILE

\(\):分组
eg: grep \(ab\){1,3\} FILE


2.2 egrep说明:

grep -E=egrep

2.2.1) 扩展正则表达式egrep元字符扩展,其余同上
+:匹配前面的字符至少1次;
eg egrep "a+" FILE
?:匹配紧挨在前面的字符0次或1次;

eg grep-E "a?b" FILE


{m,n} :至少m次,至多n次;
eg:egrep "a{1,5}" FILE

():分组,支持引用\1,\2
eg: egrep "(ab){1,3}.*\1" FILE

a|b: 二选一,或者; eg:egrep "^s|S" FILE

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