加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:07:34 所属栏目:百科 来源:网络整理
导读:1.grep:Global RE Printing Regular Expression 文本过滤工具,能够实现根据指定的模式(pattern)逐行搜 索文件内容,并将匹配到的行显示出来; 模式:是由正则表达式的元字符,其他字符组成的匹配条件; RE:正则表达式 Base RE Extended RE grep [option]

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读