zoukankan      html  css  js  c++  java
  • grep和正则表达式

    grepglobal research expression print

    是一种强大的文本搜索工具。根据关键字匹配行,然后打印含有关键字的行的内容。

    基本格式:grep   “关键字”

              grep   “关键字”   目录   在该目录下找含有关键字的文件。

    例:

     

    几个常见参数:

        -c 计算找到关键字的次数。

    -i 忽略大小写。

    -v 把没有匹配到的行显示出来。

    -o 只显示被匹配到的字符串

    -A  num     只显示匹配到的那一行的后几行。

    -B  num    只显示匹配到的那一行的前几行。

    正则表达式:

    .  任意单个字符

    例:

    a.b    表示以a开头,中间为一个任意字符,以b结尾的三个字符。

    *  前面一个字符在此重复零次或更多次。

    例:

    a*b   表示a出现任意次,b出现一次的行。(可出现的情况ab、b(a在此出现0次)、aab)

    aa*b  第一个a表示以a开头,第二个a表示a出现任意次,最终以b结尾的字符(可出现的情况有ab、aab、aaab,不可能出现b)

    [范围]  这个字符在方括号的范围内。

    [^范围] 该字符不在这个范围的任意字符。

    .*任意长度的字符

    a.*b  表示以a开头,以b结尾,a与b中间有任意长度的任意字符组成的字符串。

    ? 匹配前面的字符出现一次或0次,用的时候要有转义字符 (?)

     

    add表示a出现一次,第二个d结尾,第二个d表示a出现0次,d结尾。

    d:表示a出现0次,d结尾。

    {m,n}:前面一个字符最少出现m次,最多出现n次。使用时要添加转义字符(  {m,n}  )

     

    a{3,9}d:表示a要出现3~9次,d结尾的字符串。

    aaaaaaad:表示a出现7次(在3次和9次之间),d结尾的字符串。

    ^ 行首 “^root”:匹配以root开头的行。

    $ 行尾 “root$”:匹配以root结尾的行。

    ^任意字符$  只表示一行中只有该字符串(开头没有空格,结尾也没有空格)的行。

    例:

    ^root$  只表示这一行从开头只有一个root的字符,结尾没空格。

    ^$ 空行(和^ $是有区别的,空格也是特殊的字符。)

    <任意字符:词首。以该词开头

    任意字符>:词尾。以该词结尾。

    注:正则表达式具有贪婪模式,它会尽可能长的匹配文本,典型情况如下:

     

  • 相关阅读:
    Lucence.Net 2.9.3 日期范围搜索
    Frida 使用
    ubuntu+php5fpm 下安装 memcached PHP扩展
    cmd下使用telnet连接到memcached服务器操作
    解决sendmail卡死和主机名为bogon的问题
    【转载】Win7文件关联 文件与程序“联姻”
    [转载]Ubuntu下Samba服务器的最简配置
    Windows XP快速关机
    [转载]Git安装以及使用Git 管理个人文档
    GitHub push时提示“fatal: The remote end hung up unexpectedly”
  • 原文地址:https://www.cnblogs.com/wanglog/p/5510130.html
Copyright © 2011-2022 走看看