Linux grep与正则表达式浅析

#Linux grep与正则表达式浅析
##grep
  grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

###grep语法
    grep [options] pattern [file…]
        options:
            -v:对搜索内容取反

Linux grep与正则表达式浅析
            -i:搜索时忽略大小写

Linux grep与正则表达式浅析

            -n:显示搜索内容的行号

Linux grep与正则表达式浅析

            -o:只显示匹配到的内容

Linux grep与正则表达式浅析
            -q:静默模式,不输出信息(常用于脚本,使用echo $?判断,echo $?返回值位0时证明grep命令匹配已到模式字符,非零1~255匹配失败)

Linux grep与正则表达式浅析
            -e:指定多个pattern
            -A#:显示匹配pattern后#行内容
            -B#:显示匹配pattern前#行内容
            -C#:显示匹配pattern前后各#行内容

Linux grep与正则表达式浅析
            -E:支持扩展表达式

##基本正则表达式元字符
###字符匹配
        . :匹配任意单个字符

Linux grep与正则表达式浅析
        []:匹配中括号范围内的任意单个字符

Linux grep与正则表达式浅析
        [^]:匹配中括号范围外的任意单个字符

Linux grep与正则表达式浅析
        [:alpha:]:匹配任意大小写字母

Linux grep与正则表达式浅析
        [:alnum:]:匹配字母与数字

Linux grep与正则表达式浅析
        [:lower:]:匹配任意小写字母

Linux grep与正则表达式浅析
        [:upper:]:匹配任意大写字母

Linux grep与正则表达式浅析
        [:space:]:匹配空格

Linux grep与正则表达式浅析
        [:digit:]:匹配十进制数字
        [:punct:]:匹配标点符号
###次数匹配
        * :匹配前字符任意次,0,1,……

Linux grep与正则表达式浅析
        .*:匹配任意长度任意字符

Linux grep与正则表达式浅析
        \?:匹配前字符0次或1次

Linux grep与正则表达式浅析
        \+:匹配前字符1次至无限次(至少1次)

Linux grep与正则表达式浅析
        \{n\}:匹配前字符n次

Linux grep与正则表达式浅析
        \{n,m\}:匹配前字符至少n次,至多m次

Linux grep与正则表达式浅析
        \{n,\}:匹配前字符至少n次,
        \{,m\}:匹配前字符至多m次
###位置锚定
        ^ :锚定行首

Linux grep与正则表达式浅析
        $ :锚定行尾

Linux grep与正则表达式浅析
Linux grep与正则表达式浅析

        ^$ :表示空行,^[[:space:]]\+$:空白行

        \<或\b:锚定词首

Linux grep与正则表达式浅析
        \>或\b:锚定词尾

Linux grep与正则表达式浅析
        注:\b:位置决定锚定词首或词尾
###分组及引用
        \( \):将一个或多个字符"捆绑"成分组,后向使用变量\1引用(可按分组数引用对应变量,引用的是匹配到的字符而非匹配模式)

Linux grep与正则表达式浅析

        最后一条命令:查找/etc/passwd文件同行中出现同一单词出现两次的行

##扩展正则表达式元字符
###字符匹配
        与基本正则表达式相同(使用方法与基本正则表达式相同)
###次数匹配
        * :匹配前字符任意次,0,1,……(使用方法与基本正则表达式相同)
        .*:匹配任意长度任意字符,(使用方法与基本正则表达式相同)
        ?:匹配前字符0次或1次,(使用方法与基本正则表达式相同,以此为例)

Linux grep与正则表达式浅析
        +:匹配前字符1次至无限次(至少1次),(使用方法与基本正则表达式相同,)
        {n}:匹配前字符n次,(使用方法与基本正则表达式相同)
        {n,m}:匹配前字符至少n次,至多m次,(使用方法与基本正则表达式相同)
        {n,}:匹配前字符至少n次,(使用方法与基本正则表达式相同)
        {,m}:匹配前字符至多m次,(使用方法与基本正则表达式相同)
###位置锚定
        与基本正则表达式相同,(使用方法与基本正则表达式相同)
###分组引用
        ():扩展正则表达式分组不需要对其转义,使用和基本正则表达式相同

Linux grep与正则表达式浅析
###其他
        在基本正则表达式模式匹配时使用或(|)需要对其转义(前面加\),扩展正则表达式模式匹配时使用或(|)不需要对其转义。

Linux grep与正则表达式浅析

配图为常用选择。

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

(0)
上一篇 2017-04-06 10:19
下一篇 2017-04-06 15:09

相关推荐

  • ​grub应用之提供单独bash系统

    grub应用之提供单独bash系统     1.挂载新硬盘,并创建好三个分区,第一分区为boot分区,第三分区为根分区              2.创建挂载目录,并挂boot分区   &n…

    Linux干货 2017-01-13
  • 马哥教育网络第20期—IO类型与IO模型

    IO类型与IO模型 IO类型 同步与异步(synchronous,asynchronous):关注消息通知机制 同步:进程发出系统调用之后,不会立即有返回信息,但是一旦有返回信息,则一定是最终结果. 异步:进程发出系统调用之后,会有立即返回结果,但不是最终的结果,当内核处理完成之后,内核通过通知机制通知进程,该系统调用已完成. 阻塞与非阻塞(blocking…

    Linux干货 2016-06-26
  • Linux基础知识之cp mv rm

    该博文以CentOS6.8_x86_64系统为基础,Xshell 5远程连接CentOS系统,以root身份登录系统和sjsir普通用户身份登录系统。 为什么要学习cp、mv、rm命令?     cp、mv、rm命令为Linux系统使用最长使用的三个命令之一,复制、移动和删除是我们平时处理一些文件必须要学会的命令,应该用于熟练掌握和使用的…

    Linux干货 2016-07-29
  • 计划任务cron

        cron是一个在类Unix操作系统上的任务计划程序。它可以让用户在指定时间段周期性地运行命令或者shell脚本,通常被用在系统的自动化维护或者管理。          crontab 的基本格式是: <分钟> <小…

    Linux干货 2017-07-03
  • HAProxy

    HAProxy简介 HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。HAProxy还可以将后端的服务器与网络隔离,起到保护后端服务器的作用。HAProxy的负载均衡能力虽不如LVS,但也是相当不错,而且由于其工作在7层,可以对http请求报…

    2017-05-17
  • 初学linux遇到的问题

    1 su uername 显示的是基本格式,不是类似于[root@Centos7 ~]#,看着不知道进入到哪个目录。解决办法:在家目录下使用ls -a命令显示隐藏文件,使用nano .bash_profile命令,在那里编辑PS1=”[\u@\h \W]\\$”保存退出就好了。 疑问:为什么不在/etc/bashrc下更改呢?自答:改…

    Linux干货 2017-07-15