Linux文本处理工具grep,egrep

简介:

    grep即(Global search REgular expression and Print out the line)全局的搜索正则表达式并且打印显示出来。

    通俗点讲:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。

        

    正则表达式:

        正则表达式是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能;

        元字符:不便是其字面意思,而用于额外功能性描述

            

    基本正则表达式的元字符:

        字符匹配:

             .:匹配任意单个字符

            []:匹配指定范围内的任意单个字

            [0-9],[[:digit:]]:任意单个数字

            [a-z],[[:lower:]]:任意单个小写字母

            [A-Z],[[:upper:]]:任意单个大写字母

            [[:space:]]:空白字符

            [[:punct:]]:标点符号

            [[:alpha:]]:所有大小写字母

            [[:alnum:]]:所有数字字母

            [^]:取反

       次数匹配:

            用于实现指定其前面的字符所能出现的次数

            *:任意长度,它前面的字符可以出现任意次

            \?:出现0次或者1次,也就是说它前面的字符是可有可无的

            \{m\}:m次,它前面的字符要出现m次

            \{m,n}:至少m次,至多n次(m<n)

            \{m,\}:至少m次

            \{0,n\}:至多n次

            .*:任意长度的任意字符

        位置锚定:

            ^:行首锚定,写在模式最左侧

            $:行尾锚定,写在模式最右侧

            ^$:空白行

            \<:词首锚定,出现于单词左侧

            \>:词尾锚定,出现于单词右侧

            \b:词首词尾都可以

            (注:不包含特殊字符的连续字符组成的串叫单词)

        分组:

            \(\)    例如:\(ab\)*

            注:分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被多次引用

        

        引用:

            \n:引用第n个括号所匹配到的内容,而非模式本身

        

    扩展正则表达式:

        字符匹配:

            .:任意单个字符

            []:匹配任意字符范围内

            [^]:匹配任意范围外

        次数匹配:

            *:任意次

            ?:0次或1次

            +:至少1次

            {m}:精确匹配m次

            {m,n}:至少m次,至多n次

            {m,}:至少m次

            {0,n}:至多n次

        锚定

            ^:行首

            $:行尾

            \<,\b:词首

            \>,\b:词尾

            ^$,^[[:space:]]*$:空行

        分组:

            ()

        引用:

            \n

        或者:

            a|b:a或b

        

    grep的用法:

        grep [option]… ‘PATTERN' FILE…

        grep的命令选项:

            -v:去反向选取

            -o:仅显示匹配的字串本身,而非字串所在的行

            -i:ignore-case,忽略字符大小写

         

            -E:支持使用扩展正则表达式      

            -A:显示之前两行

            -B:显示之后两行

            -C:显示上下两行

    egrep:egrep用法等同于grep -E


实战操作:

    1.显示/proc/meminfo文件中以大写或小写S开头的行;

QQ截图20150508141815.png

QQ截图20150508142408.png

    2.显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

QQ截图20150508143022.png

    3.显示/etc/passwd文件中其默认shell为/bin/bash的用户;进一步;仅显示上述结果中ID号最大的用户;

QQ截图20150508143526.png

    4.找出/etc/passwd文件中的一位数或两位数;    

        

QQ截图20150508144148.png

     5.显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

QQ截图20150508144445.png

    6.找出netstat -tan命令执行结果中以‘LISTEN’结尾的行;

QQ截图20150508144731.png

    7.找出ifconfig命令结果中1-255之间的数字;         

QQ截图20150508150110.png    8.显示当前系统上root或git用户的默认shell;

QQ截图20150508152016.png

    9.使用echo命令输出一个路径,而后使用grep取其基名

QQ截图20150508152710.png

原创文章,作者:水蒸气,如若转载,请注明出处:http://www.178linux.com/4148

(0)
水蒸气水蒸气
上一篇 2015-05-11
下一篇 2015-05-11

相关推荐

  • 详解linux磁盘管理

                           磁盘管理 设备文件 1. I/O ports:I/O设备地址 2. 一切皆文件,open(),read(),write(),close(),对设备的操作也都是通     过这…

    Linux干货 2016-08-29
  • 排错

    把/etc/inittab  模式改为6模式 怎么修复 1 先把 vim /etc/inittab 打开 2 把/etc/inittab 模式改为6 3 reboot 4 在倒计时完之前按任意键 5按A进入 6 在quiet  命令后面写入 3  模式 重启 7把 vim /etc/inittab 打开 8 把/etc…

    Linux干货 2017-05-15
  • Linux系统中硬链接和软链接

    使用对象:linux初学者。   一、硬链接和软链接的概念 硬链接是给已经存在的数据文件另外创建一个名字,通过该名字也可以访问该数据文件。就好像给张三起个绰号叫“小二黑”,通过“张三”这个名字能找到这个人,通过“小二黑”这个名字也能找到这个人。        软链接是给文件名在其…

    Linux干货 2016-10-20
  • 编译安装dropbear和使用

    一、概念 Dropbear是一个相对较小的SSH服务器和客户端。它运行在一个基于POSIX的各种平台。 Dropbear是开源软件,在麻省理工学院式的许可证。 Dropbear是特别有用的“嵌入”式的Linux(或其他Unix)系统,如无线路由器。 二、功能 dropbear实现完整的SSH客户端和服务器版本2协议。它不支持SSH版本1 的向后兼容性,以节省…

    Linux干货 2016-10-04
  • 第一周

    #blog text 1. 描述计算机的组成及其功能。 2. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。 3. 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。 4. 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、pow…

    Linux干货 2016-12-04
  • 硬软链接的区别 节点 以及重定向和管道

    INODE全称叫index node 表中包含文件系统所有文件列表   一个节点是在一个表项 包含有关文件的信息 ( 元数据 ) 包括: 文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数) 该文件的大小和不同的时间戳 指向磁盘上文件的数据块指针 有关文件的其他数 1 文件引用一个是 inode号   2 我们是通过文件名…

    Linux干货 2016-08-12