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

相关推荐

  • Linux基础 & bash基础特性

    Q1:描述计算机的组成及其功能。 计算机的组成:运算器、控制器、存储设备、输入设备、输出设备。 运算器: 运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件。 存储设备: 计算机总是需要记录与读取数据的,而这些数据当然不可能每次都由用户经过键盘…

    Linux干货 2016-10-30
  • 逻辑卷

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性。       LVM将存储虚拟化,使用逻辑卷,你不会受限于物理磁盘的大小,另外,与硬件相关的存储设置被其隐藏,你可以不用停止应用或卸载…

    Linux干货 2016-09-01
  • 进程查看管理工具htop/dstat/top/ps

    ps:显示系统当前进程的运行情况         选项与参数(一):            a:所有与终端相关的进程;    x:所有与终端无关的进程;    u:以用户为中心组织进程状态信息显示;   &nb…

    2016-12-04
  • 通过fast-cgi方式在三台主机部署phpwind并设置为https站点

    通常来说httpd用来处理静态的网页请求,动态的资源请求以前是通过CGI的方式进行处理的,但是CGI的方式的处理过程是这样:有动态资源请求,服务器会fork一个CGI进程进行资源处理,处理完成后这个进程会退出,当再有新的动态资源请求,又会fork一个进程,这样的效率是很低的。后来就有了通过加载php模块的方式,即:httpd服务器启动之后会自动加载php动态…

    2017-06-04
  • Linux 文件系统上的权限

    文件系统上的权限是指文件系统上的文件和目录的权限,由于Linux是一种多用户的操作系统,而且允许同一时间登录多个用户操作,所以我们就需要一定的管理机制来对限定不同用户对同一文件或目录的操作权限。 文件系统上的权限主要针对三类对象(访问者)进行定义: owner:属主 u; g 属组 group; o: 其它 other 每个文件针对每类访问者都定义了三种权限…

    2017-06-04