学shell的第四天

grep与正则表达式:

1、grep程序

      linux下有文本处理三剑客--grep sed awk

      grep:文本行过滤工具

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

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

  grep:包含三个命令:grep egrep fgrep,他们是用来进行行模式匹配的

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

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

  *grep默认使用正则表达式进行文本匹配

  grep的用法:

        grep 【option】 ...  PATTERN【filename】

  grep的常见选项--option

        -E支持使用扩展的正则表达式

        -P使用perl语言的正则表达式引擎进行搜索(每种语言的正则表达式引擎都不相同)

        -i忽略大小写

        -w匹配固定的单词

        -v反选

        -o仅仅输出匹配的内容

        --color=auto 语法着色

        -n显示行号

     PATTERN--正则表达式

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

        1、字符匹配

              .代表任意一个字符相当于文件通配符的?

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

              [^]范围外的任意一个字符

              字符类:  [:digit:]
                     任意数字, 相当于0-9
                    [:lower]
                     任意小写字母
                    [upper:]
                     任意大写字母
                    [alpha:]
                     任意大小写字母
                    [:alnum:]
                     任意数字或字母
                    [:blank:]|
                     水平空白字符
                    [:space:]
                     水平或垂直空白字符
                    [punct:]
                     标点符号
                     [print:]
                      可打印字符
                     [:cntrl:]
                       控制(非打印)字符
                     [:graph:]
                       图形字符
                      [xdigit:]
                       十六进制字符

        2、次数匹配       ***匹配空白字符^[[:space:]]***

              *匹配前面的字符0次到无数次

              \?匹配前面的字符0次到1次

              +匹配千米教案的字符一次到n次

              \{m\}配置前面的字符M次

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

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

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

        3、位置锚定

              ^锚定行首

              $锚定行尾

              \b锚定词首和锚定词尾

              \>锚定词尾

              \<锚定词首

        4、分组

            \(\)示例:\(abc\)*    abcabc

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

重要知识点:交互式传参:read -p     #//-t   是等待几秒

  例子:read -p ("请输入一个东西: ")filename

猜你喜欢

转载自www.cnblogs.com/zrxuexi/p/11353164.html