正则表达式和grep的基本用法9

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

1.grep:Global RE Printing

Regular Expression


文本过滤工具,能够实现根据指定的模式(pattern)逐行搜


文件内容,并将匹配到的行显示出来;


模式:是由正则表达式的元字符,其他字符组成的匹配条件;


RE:正则表达式

Base RE

Extended RE


grep [option]...'pattern' FILE...

-v 反向取值;

--color=auto 匹配的字符加红色加粗体显示


1.基本正则表达式元字符


.:匹配任意单个字符;

如,grep 'c.u' /proc/cpuinfo;


..:匹配2个字符;


[]:表示指定范围内的任意单个字符;

如,grep --color=auto 'c..[a-z]' /proc/cpuinfo;


[^]:指定范围外的任意字符;


2.次数匹配(贪婪匹配)


*:匹配其前的字符的0,1或多次;

如,ab*c: abc,abbc,ac(不匹配),abdc(表示b的出现


次数的);


作业(grep.txt文件中查找,其中一行有tab键编写):

查找ab,a b,accccb;

grep 'a[[:space:]]*b' /tmp/grep.txt;


?:匹配其前的字符的0或1次;


\{m,n\}:其中\是转意,{}是避免shell展开,至少m


次至多n次;

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

\{m\}:m次;


作业:

练习以下匹配:

a[a-z]\{0,2\}c:abc,aaaac,accccc;


3.锚定符

r..t:root,chroot,rooter;

This is root.

There is chroot.


单词锚定:

\<:锚定词首;如,\<r..t;

\>:锚定词尾;如,root\>;


行首锚定:

^(脱字符):如,^root;


行尾锚定:

$:如,root$;


a.如何显示行尾是root且可以带一个标点的行;

grep 'root[[:punct:]]?$' FILE=grep 'root[[:punct:]]\{0,1\}$' FILE;

b.如何显示行首是空白以root开头的行;

grep '^[[:space:]]*root' FILE;


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

如,a.*b,a和b之间出现任意长度的任意字符;


4.分组

xabababy,ab成组出现;


\(\),x\(ab\)*y


前向引用:

He love his lover.

She like her liker.

He love his liker.

She like her lover.


l..e.*l..er;

\(l..e\).*\1r(后面是数字1);

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