一、egrep及扩展正则表达式:
REGEXP:REGular EXPression
1、正则表达式:
Basic REGEXP:基本正则表达式
Extended REGEXP:扩展正则表达式
2、扩展正则表达式:Extended REGEXP
字符匹配:
.:任意单个字符
[]:范围内的任意单个字符
[^]:范围外的任意单个字符
次数匹配:
*:其前字符任意次
?:其前字符0次或1次
+:其前字符至少1次,相当于正则表示式中'\{1,\}'
{m,n}:匹配其前字符至少m次,至多n次
位置锚钉:
^:锚钉行首
$:锚钉行尾
\<:锚钉词首
\>:锚钉词尾
分组:
():后向引用
\1:引用第一个左括号以及与之对应的右括号所包含的所有内容
\2:引用第二个左括号以及与之对应的右括号所包含的所有内容
\3:引用第三个左括号以及与之对应的右括号所包含的所有内容
或者:
|:表示或者(or),如a|b,表示匹配a或者b
例1:[root@Ourlab ~]# grep -E --colour 'C|cat' test6.txt
cat
Cat
C
China
例2:[root@Ourlab ~]# grep -E --colour '(C|c)at' test6.txt
cat
Cat
3、grep -E =egrep
课后练习:
1、找出/proc/cpuinfo文件中的1位数或2位数的行;
[root@Ourlab ~]# grep '\<[0-9]\{1,2\}\>' /proc/cpuinfo
2、找出/boot/grub/grub.conf命令结果中的1-255之间的整数;
[root@Ourlab ~]# egrep --colour '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf
3、查找当前系统上名字为wolf(必须出现在行首)的用户的账号的相关信息,文件/etc/passwd;
[root@Ourlab ~]# grep '^wolf\>' /etc/passwd
4、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
[root@Ourlab ~]# grep -E '^[[:space:]]+' /boot/grub/grub.conf
或者:
[root@Ourlab ~]# grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
5、找出ifcongfig输出结果中IP及掩码等地址;
[root@Ourlab ~]# ifconfig | egrep --colour -o '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
6、找出ifconfig输出结果中A、B、C三类的IP地址;
[root@Ourlab ~]# ifconfig | egrep --colour -o '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-1][0-9]|22[0-3])\>(\.\<[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>'
阅读(1012) | 评论(0) | 转发(0) |