美文网首页
文本编辑工具 -- egrep语法及其使用

文本编辑工具 -- egrep语法及其使用

作者: Michael_林 | 来源:发表于2018-01-10 21:23 被阅读13次

    语法格式

    egrep [OPTIONS] PATTERN [FILE...]
    egrep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
    

    说明: egrep 和 grep 的语法一致,区别在于元字符的使用上: 扩展的正则表达式与基本正则表达式一致,但是不用转义。

    基本正则表达式元字符:

        字符匹配:., .*, [], [^]
        次数匹配:(通过分组的方式对不止一个字符做次数匹配)  *, \?, \+, \{m,n\}
        位置锚定:^, $, \< (\b), \> (\b)
        分组及引用:\(\), \n
    

    扩展的正则表达式元字符

        字符匹配:., .*, [], [^]
        次数匹配:(通过分组的方式对不止一个字符做次数匹配)     
            * 任意次数   
            ? 0或者1次
            + 1或者多次  
            {m,n}  精确匹配,至少m次,至多n次
        位置锚定:  
            ^  锚定行首
            $  锚定行尾
            \< (\b)  锚定词首
            \> (\b)  锚定词尾
        分组及引用:
            () 分组
            \n 后向引用
        或者:
            a|bc a或者bc
            C|cat C或者cat
            (c|C)at Cat或者cat 
    

    扩展的正则表达式示例:

            1、显示当前系统上root、fedora或user1用户的默认shell 和 uid;  
            # grep -E "^(root|fedora|user1):" /etc/passwd | cut -d: -f7
            # egrep "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f3,7
        
            2、找出/etc/rc.d/init.d/functions文件中某单词后跟一组小括号“()”行;
            # grep -o -E "\<[[:alpha:]]+\>\(\)" /etc/rc.d/init.d/functions
            # egrep -o "\<[[:alpha:]]+\>\(\)" /etc/rc.d/init.d/functions
    
            3、使用echo命令输出一个路径,而后使用grep取出其基名;
            # echo "/etc/sysconfig/" | grep -o -E "[^/]+/?$" | cut -d/ -f1
            # echo "/etc/sysconfig/" | egrep  -o  "[^/]+/?$" | cut -d/ -f1
            
            4、找出ifconfig命令结果中的1-255之间的数字;
            # ifconfig | egrep -o  "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
    
            5、挑战题:写一个模式,能匹配合理的ipv4地址;
            # 分析: 1.0.0.1-239.255.255.255
            # ifconfig | egrep -o  "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
    

    相关文章

      网友评论

          本文标题:文本编辑工具 -- egrep语法及其使用

          本文链接:https://www.haomeiwen.com/subject/uyjanxtx.html