zoukankan      html  css  js  c++  java
  • 学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、位置锚定

                  ^锚定行首

                  $锚定行尾

                  锚定词首和锚定词尾

                  >锚定词尾

                  <锚定词首

            4、分组

                ()示例:(abc)*    abcabc

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

        扩展正则表达式:

              【标准正则表达式里的都不用加】

               分组 ()

               或     | 

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

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

  • 相关阅读:
    两次动态输入和while的结合使用
    索引切片步长
    12.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
    输出1-100的所以奇数或偶数
    求1-2+3-4+5 ... 99的所有数的和
    求1-100所有数的和
    三次登录机会
    while输入12345689
    while和格式化输出的复合使用
    44
  • 原文地址:https://www.cnblogs.com/zrxuexi/p/11353164.html
Copyright © 2011-2022 走看看