码迷,mamicode.com
首页 > 系统相关 > 详细

13 shell脚本--005grep和正则表达式

时间:2019-08-14 12:32:01      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:作用   报告   支持   linux   转义   大小写   nbsp   搜索   ace   

1、grep程序

  grep:文本 行过滤工具

  sed:文本 行编辑器(流编辑器)

  awk:报告生成器,(做文本输出格式化)

  

  grep包含3个命令:grep、egrep、fgrep,他们是用来进行 行模式(pattern)匹配的

    egrep = grep -E   //使用扩展的正则表达式进行匹配

    fgrep = fast grep  //只使用文件通配符进行匹配

    grep   //默认使用正则表达式进行文件匹配

  grep的用法:

    grep 【option】... PATTERN [filename]

  grep的常见选项:----option

    -E     //支持使用扩展的正则表达式(regexp)

    -P     //使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed awk grep使用的regexp引擎都不相同)

    -i      //忽略大小写

    -v     //进行反选

    -o     //仅仅输出匹配的内容(默认输出的是匹配到的行)

    -n     //显示行号

    --color=auto     //语法着色

    -w     //匹配固定单词

    \<[0-9]\{2,3\}\>

         \b<[0-9]\{2,3\}\b

  PATTERN(pattern)--正则表达式

    作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要 \ 进行转义;

    回顾文件通配符:* ? [ ] [^ ]

    1、字符匹配

      .    //任意一个字符-------->?

      [ ]  //范围内的任意一个字符---------->[ ]

      [^ ]  //范围外任意一个字符---------->[^ ]

      字符类:[0-9] = [[:digit:]]

          [0-9][a-z][A-Z] = [[:alnum:]]

             [a-z] = [[:lower:]]

          [A-Z] = [[:upper:]]

          [~!@#$%^&*] = [[:punct:]]

          [[:space:]]

    2、次数匹配

      *     //匹配前面的(紧挨着的字符)0次到无数次

      \?   //匹配前面的(紧挨着的字符)0次到1次

      \+     //匹配前面的(紧挨着的字符)1次到无数次     ( * = ?+

      \{m\}  //匹配前面的字符m次

      \{m,n\}  //匹配前面的字符m到n次

      \{0,n\}    //匹配前面的字符0到n次

      \{m,\}     //匹配前面的字符至少m次

    3、位置锚定

      ^     //锚定行首

      $     //锚定行尾

      \b    //锚定词首和锚定词尾

      \>    //锚定词尾

      <\    //锚定词首       <\root\>

    4、分组

      abc*   abccccc   abc我们要看成一个整体

      \(\)   示例:\(abc\)*  abcabcabc  abccc

      **分组特性:默认情况下,Linux系统会分为指定变量,变量的表示形式为\1 \2 \3

 

2、正则表达式

   

  

  

  

  

13 shell脚本--005grep和正则表达式

标签:作用   报告   支持   linux   转义   大小写   nbsp   搜索   ace   

原文地址:https://www.cnblogs.com/wx00/p/11349943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!