GREP EGREP的用法及正则表达式和扩展正则表达式简述

  1. egrep grep的使用方法

  2. 正则表达式及扩展表达式简述

  3. 使用事例

     

    grep egrep都是文本搜索工具,可以把符合模式的行或字符显示出来,而这些模式grep一般使用正则表达式进行匹配,而egrep使用扩展正则表达式来进行匹配的。

    grep及egrep的使用方法:

                                                grep [option] pattern file…..

                                                option:

                                                            -o:显示只显示匹配到的字符

                                                            -v:显示与匹配模式相反的行

                                                            -i:忽略匹配模式的大小写进行匹配

                                                            -E:使用egrep进行匹配

                                                 egrep [option] pattern file…..

                                                  option

                                                            -o:显示只显示匹配到的字符

                                                            -v:显示与匹配模式相反的行

                                                            -i:忽略匹配模式的大小写进行匹配

正则表达式:

                        字符匹配

                                        . : 表示匹配单个任意字符

                                        [[:alpha:]]:表示匹配单个字母

                                        [[:lower:]]:表示匹配单个小写字母

                                        [[:upper:]]:表示匹配单个大写字母

                                        [[:digit:]]:表示匹配单个数字

                                        [[:space:]]:表示匹配单个空白字符

                                        [[:alnum:]]:表示匹配单个字母或数字

                        次数匹配

                                        *:表示匹配前一个字符的任意次

                                        \?:表示匹配前个一个字符一次或零次

                                        \{m\}:表示匹配前一个字符m次

                                        \{m,n\}:表示匹配前一个字符至少m次,至多n次

                                        \{m,\}:表示匹配前一个字符至少m次

                                        \{0,m\}:表示匹配前一个字符至多m次

                                        注(.* 表示 匹配任意长度的任意字符)

                        位置锚定

                                        ^:表示锁定行首

                                        $:表示锁定行尾

                                        \<:表示锁定字母的首部

                                        \>:表示锁定字母尾部

                                       (注:^$ 表示匹配空白行)

                        分组:\(字符\):表示里面的字符组合为一个分组;我们可以用 \1 \2 …\#进行该分组内容的引用

 

                        补: \| 表示 或者 例如 a \| b a或b匹配其中一个

                                \+ 表示匹配前个字符至少一次

扩展正则表达式

                              字符匹配

                                        . : 表示匹配单个任意字符

                                        [[:alpha:]]:表示匹配单个字母

                                        [[:lower:]]:表示匹配单个小写字母

                                        [[:upper:]]:表示匹配单个大写字母

                                        [[:digit:]]:表示匹配单个数字

                                        [[:space:]]:表示匹配单个空白字符

                                        [[:alnum:]]:表示匹配单个字母或数字

                        次数匹配

                                        *:表示匹配前一个字符的任意次

                                        ?:表示匹配前个一个字符一次或零次

                                        {m}:表示匹配前一个字符m次

                                        {m,n}:表示匹配前一个字符至少m次,至多n次

                                        {m,}:表示匹配前一个字符至少m次

                                        {0,m}:表示匹配前一个字符至多m次

                                         +:表示匹配前个字符至少一次

                            

                        位置锚定

                                        ^:表示锁定行首

                                        $:表示锁定行尾

                                        \<:表示锁定字母的首部

                                        \>:表示锁定字母尾部

                         分组

                                    (字符):表示里面的字符作为一个组合;用 \1 \2 …\#来引用

事例

        事例一:

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

GREP EGREP的用法及正则表达式和扩展正则表达式简述                                XU~R@8~_IU@TBRS~0TY_66L.png

        事例二:

                      显示/etc/rc.d/rc.sysinit文件中,以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行

                    V1]}RZ1QL3PBP_WNI]IG]_5.png           事例三:

                            写一个模式,能匹配合理的ipv4地址(1.0.0.1-239.255.255.255)

[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-3][0-9]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]

                                                            

原创文章,作者:13-广州-杨过,如若转载,请注明出处:http://www.178linux.com/6593

(0)
13-广州-杨过13-广州-杨过
上一篇 2015-07-27
下一篇 2015-07-28

相关推荐

  • 一个简单的负载均衡集群:web服务

    一个简单的负载均衡集群:以web服务为例 实验环境:三台主机(CentOS 7.3)             主机1:IP地址 172.18.0.88(Haproxy代理服务器)             主机2:IP地址 172.…

    Linux干货 2017-05-17
  • 系统管理之程序包管理(一) rpm详解

    系统管理之程序包管理(1):     程序包管理是运维人员的基本工作素质之一。在操作系统上,不断的安装,卸载,配置应用程序包,让不同程序包运行提供不同的服务;利用某种工具完成某些操作的过程。这就要求运维工作人员熟悉安装,管理应用程序包。 在linux上,程序包主要有两种:tar,rpm包。 一、程序包概述: 系统接口   &nb…

    Linux干货 2016-08-21
  • 初识linux

    Linux 是什么?2014年之前我都没有听说过linux。 简单来说,Linux是一种操作系统,我们知道Windows吧,Linux也是一种操作系统。 特性: (1)字符界面(当然现在也有图形界面了) (2)一切皆文件 (3)许多小工具程序组合 Linux脱胎于Unix,Unix是由贝尔实验开发的。符合posix 标准,Unix系统上面的应用程序大部分可以…

    Linux干货 2016-06-01
  • 网络知识点

    1. 实现异地搭建局域网的方法1>. 让运行商拉专线,这是相当昂贵的。2>.  VPN (Virtual PrivateNetwork)  虚拟专用网络 2. VPN的隧道协议主要有三种:PPTP、L2TP和IPSec。其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议。 2. …

    Linux干货 2016-09-01
  • 玩转linux之启动篇

        想要玩转linux,首先明白其启动流程,这里简单说明一下: CentOS 6启动流程:    POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> roo…

    Linux干货 2016-09-26
  • 马哥教育网络班22期+第三周(8.22-8.28)博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   # who|awk '{print $1}'|sort| uniq 2、取出最后登录到当前系统的用户的相关信息。   # last   # last|gr…

    Linux干货 2016-08-29

评论列表(1条)

  • yini
    yini 2015-07-28 19:52

    已mark。 :smile: