Linux学习之十一egrep及扩展正则表达式(egrep)

来源:互联网 发布:福建万照软件 编辑:程序博客网 时间:2024/06/16 16:51
一、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])\>'
0 0
原创粉丝点击