知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

了解grep和正则表达式

发布时间:2014-09-05 17:09:58作者:知识屋

 

正则表达式                                                                                快速调治grep

      正则表达式:由一堆元字符组成,将这些元字符按一定的规则组合起来用来过滤匹配不同的内容。(简单的说正则表达式就是一个由元字符组成的过滤网)

     正则表达式的分类

      1、基本正则表达式:即标准正则表达式,支持基本的元字符。

      基本正则表达式所支持的元字符极其含义如图所示:

    

 

 

      2、扩展正则表达式:支持比基本正则表达式更多的元字符,但是扩展正则表达式对有些基本本正则表达式所支持的元字符并不支持。

           扩展正则表达式所支持的元字符如图所示:

 

    通过对比我们会发现在基本正则表达式中支持的元字符,在扩展正则表达式中并不是都支持。

 

     

            grep

        grep  全面执行正则表达式并将匹配的内容显示出来。换而言之,grep是用来执行由元字符组成的过滤网的,并显示出匹配过滤网的信息。

           grep执行正则表达式的格式为:grep "keyword" file

            grep是用来执行基本正则表达式的命令,其不能够识别扩展正则表达式中的元字符。

            grep -E = egrep 是用来执行拓展正则表达式的,因扩展正则表达式中并不包含所有的基本正则表达式,所以egrep也不能执行基本正则表达式。

            下面通过下图练习中的几道题我们来看一看grep和正则表达式结合的效果

 答案

 

      1、grep --color "^[sS]" /pro/meminfo (--color是把匹配的内容以红色显示出来,便于核对执行效果,我们为了方便也可以使用alias grep='grep --color'命令来设置命令的别名让命令grep与grep --color有相同的效果)

      2、grep  "nologin$" /etc/passwd

      3、grep "^#[[:space:]]/(1,/).*" /etc/inittab

      4、grep  ":[0-9]:" /etc/inittab

      5、grep  "[[:space:]]/(1,/).*" /boot/grub/grub.conf

      6、grep  "^/([0-9]/).*/1$" /etc/

      7、ifconfig | grep --color "inet addr" | grep -v '127.0.0.1' | cut -d: -f2 | cut -d" " -f1

      8、grep --color "[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/." /etc/sysconfig/network-spcripts/ifcfg-eth0    使用扩展正则表达式的答案如下:

          grep -E "([0-9]/{1,3/}/.){3}[0-9]/{1,3}" /etc/sysconfig/network-spcripts/ifcfg-eth0

本文出自 “redhat” 博客

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜