上次写的文章中介绍了正则表达式,是不是感觉使用的时候还是有点麻烦,因为好多字符都要经过转义,每次写完都要检查一下转义符有没有少,确实要细心了才不会有那么多的错误,今天介绍的扩展正则表达式可以给你带来很大的方便.其实它的用法和正则表达式很相似,只是很多字符不需要经过转义了,方便了很多。下面来介绍一下egrep
1. egrep = grep -E
2. egrep [OPTIONS] PATTERN [FILE...]
3. 扩展正则表达式的元字符:
《1》字符匹配
. :任意单个字符
[ ] :指定范围的字符
[^] :不在指定范围的字符
《2》次数匹配
* :匹配前面字符任意次
? : 0或1次
+ :1次或多次
{m} :匹配m次
{m,n} :至少m,至多n次
《3》位置锚定
^ : 行首;
$ : 行尾;
\<,\b : 词首; \>, \b : 词尾
《4》分组
()
《5》后向引用
\1,\2, ...
《6》或者
a|b : a或b
C|cat : C或cat
(C|c)at : Cat或cat
同样的,我们需要经过练习才能对这些命令的用法有更深刻的理解,在使用的过程中会有很多深刻的体会,多练习,多总结。这些知识一定要学好,在以后的学习中会使用的到。下面是一些小练习,可以小试牛刀
练习
1、显示三个用户root、mage、wang的UID和默认shell
2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行
3、使用egrep取出/etc/rc.d/init.d/functions中其基名
4、使用egrep取出上面路径的目录名
5、统计last命令中以root登录的每个主机IP地址登录次数
6、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255
7、显示ifconfig命令结果中所有IPv4地址
8、将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前面
正则表达式和扩展正则表达式是很重要的内容,前天学习了脚本的基础知识之后更是感觉写脚本的时候会用到很多之前学过的知识,其中很多也是正则表达式的使用。总之前面的基础知识一定要熟练掌握,这样才能在后面的学习中熟练应用。