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 11:59
下一篇 2015-05-11 12:14

相关推荐

  • Xtrabackup进行MySQL备份

    使用Xtrabackup进行MySQL备份 一、安装 1、简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。 特点: (1)备份过程快速、可靠; (2)备份过程不会打断正在执行的事务; (3)能够基于压缩等功能节约磁盘空间和流量; (4)自动…

    Linux干货 2017-02-20
  • 马哥教育网络班19期+第八周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。    主要功能:    网桥是一个局域网与另一个局域网之间建立连接的桥梁,属于数据链路层的一种设备。    集线器是可以将一些机器连接起来组成一个局域网的设备。   &n…

    Linux干货 2016-06-26
  • bash的基本特性之globbing,IO重定向及管道

    bash的基本特性之globbing,IO重定向及管道 giobbing:文件名通配 在bash的操作环境中有一个分厂有用的功能那就是gilobbing:文件名通配,这样我们在处理数据的时候就更方便了。下面我们来罗列一些常用的通配符。(注:globbing是做整体的文件名匹配而非部分) 匹配模式:元字符 *:表示匹配任意长度的任意字符  &nbsp…

    Linux干货 2016-12-19
  • 误删除centos6.8内核修复全过程

    关于误删除系统内核或内核损坏修复教程,本教程主要详细描述系统内核或内核损坏修复过程中步骤详解 一.操作环境 硬件:华硕笔记本 软件:VMware Workstation Pro 12版本  Centos 6.8.iso镜像 二,修复步骤 第一步,我们先要挂载centos6.8的镜像,然后光盘启动 进入系统救援模式 进入当前系统的根目录 我们需要手动…

    Linux干货 2016-09-05
  • N22-第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count1=0 declare -i count2=0 for i in $(awk -F : '{print $7}&#03…

    Linux干货 2016-10-17
  • ansible之Playbook中tags使用

    示例:httpd.yml– hosts: websrvsremote_user: roottasks:– name: Install httpdyum: name=httpd state=present – name: Install configure filecopy: src=files/httpd.conf des…

    Linux干货 2018-01-14