正则表达式和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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |