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

Posted wx00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13 shell脚本--005grep和正则表达式相关的知识,希望对你有一定的参考价值。

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和正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

bash:在 shell 脚本中使用正则表达式查找和 grep

shell脚本——正则表达式(包含grep详细介绍及应用)

shell脚本正则表达式三剑客之一(grep,egrep)

如何在 shell 脚本中将此正则表达式与 grep 一起使用?

shell脚本之正则表达式

shell脚本之正则表达式