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 22:55
下一篇 2015-07-28 09:35

相关推荐

  • 关于HISTCONTROL命令及对快捷键Ctrl+o命令的影响

            在linux中环境变量HISTCONTROL可以控制历史的记录方式。         HISTCONTROL有以下的选项:         &n…

    Linux干货 2017-02-18
  • 马哥教育网络班21期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2016-10-24
  • 8月5日课堂笔记

    bash基础及shell编程初步 bash的特性及bash脚本编程初步    操作系统硬件, 内核把底层硬件的复杂性给隐藏起来,统一输出为一种系统调用,系统调用非常底层,把系统调用封装成了库。让程序运行起来。用户在创建时有一个默认shell。终点设备用来当做标准输入和输出。  要想与主机交互,需要一个【终端】,附着在终端接口程序:  &n…

    Linux干货 2016-08-07
  • 第六周作业

    1、简述osi七层模型和TCP/IP五层模型 应用层 运行着应用程序的协议http、ftp、tftp等 表示层 将应用层所编辑的数据进行加密或解密,没有协议 会话层 决定一次数据传输发起和接收会话请求,没有协议 传输层 根据选着的协议类型,决定是否将数据分割或重组,协议:tcp、udp等 网络层 编辑逻辑地址信息(原站点、目的站点)和路由选着(ARP)协议:…

    2018-02-06
  • 运维工程师技能需求排行

    这是我今天在拉勾网搜索运维,翻完了4四页也招聘信息之后得到的,我的目的是想要看看之后的学习,哪个更应该成为重点,有些在我意料之中,有些还真的没想到,算是努力了一个小时的收获吧,分享给大家。
    注意:其中的看法仅代表个人观点,很多都是依靠我自己的学习经验和工作经验累积的

    Linux干货 2017-12-12
  • 计算机的组成及其功能简述

    1、计算机的组成 (1)运算器、控制器、寄存器、缓存 –> CPU,Central Processing Unit (2)存储器 –> Memory (3)输入设备 –> Keyboard、Mouse and so on (4)输出设备 –> Displayer and so on (5…

    Linux干货 2016-09-19

评论列表(1条)

  • yini
    yini 2015-07-28 19:52

    已mark。 :smile: