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

相关推荐

  • LVS实现

    一 LVS-NAT实验前的准备 操作系统:CentOS 6.7 64位 配置防火墙,iptables –F 清理防火墙规则或者关闭iptables 关闭SELINUX, setenforce 0  #立即生效(实际是宽容模式) Director ip:172.16.2.1  VIP:192.168.1.8 RS1 ip:172.16.2.…

    Linux干货 2016-12-29
  • GRUB

    什么是GRUB GRUB(boot loader):grub:GRand Unified Bootloader     有两个版本:grub 0.x:grub legacy经典版;grub 2.x grub legacy:主要运行分三个阶段 stage1(第一阶段):安装在mbr中 stage1.5(第1.5阶段):存…

    Linux干货 2016-09-21
  • N26-第一周作业

    1.    计算机由以下几个部分组成:         a. CPU:中央处理器;主要由运算器和控制器组成            …

    Linux干货 2017-01-07
  • 编程命名中的7+1个提示

    前几天Neo写过《编程中的命名设计那点事》,这里也有另外一篇和程序命名的文章,可以从另一个角度看看。 1.- 变量应该是尽可能的望文知意。千万不要使用教材中的命名方式。 好的变量: daysDateRange, flightNumber, carColor. 坏的变量: days, dRange, temp, data, aux… 在我们…

    Linux干货 2015-04-03
  • Linux下DNS服务器配置

    Linux下DNS服务器配置 简要描述各种DNS服务器的配置方法。包括正向解析DNS服务器、逆向解析DNS服务器、主从DNS服务器。 实验环境整体配置 关闭SElinux setenfore 0 清空防火墙 iptables -F 修改主配置文件 /etc/named.conf #监听本机外网端口 listen-on port 53 { 127.0.0.1;…

    Linux干货 2017-05-31
  • 走入系统命令

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-25