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)
wangywangy
上一篇 2017-04-06 10:19
下一篇 2017-04-06 15:09

相关推荐

  • yum——替你排忧解难的前端包安装工具

    yum CentOS前端工具: yum, dnf 统一资源定位符:URL YUM: Yellowdog Update Modifier,rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,自动安装软件包,以及该软件包的依赖包,up2date的替代工具 yum repository: yum repo (yum仓库)  &nbsp…

    Linux干货 2016-08-24
  • 第十周 Apache服务

    1、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式 2、简述request报文请求方法和状态响应码 3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例  

    2018-02-09
  • 硬软链接的区别 节点 以及重定向和管道

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

    Linux干货 2016-08-12
  • DNS服务器之理论基础

    一、什么是DNS     DNS全称为Domain Name System,即域名系统,其作用就是将我们经常使用的“网址”解析为IP地址。     在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识…

    Linux干货 2015-04-29
  • 马哥教育网络班22期+第1周课程练习

    第1周课程练习 一、描述计算机的组成及其功能。     CPU (运算器+控制器), 存诸器(内存与外部存储),输入输出设备。      运算器:对数据进行处理(包括算述运算与逻辑运算)。      控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各…

    Linux干货 2016-08-15
  • 马哥Linux第四周作业

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 ~]# cp -r /etc/skel/ /home/user1 ~]# chmod -R g0-rwx /home/user1/ 2.编辑/etc/group文件,添加组hadoop 编辑/etc/group 写入:hado…

    2018-01-07