zoukankan      html  css  js  c++  java
  • 学习shell第四天

    一、grep程序
      1、linux下有文本处理三剑客 -- grep sed awk
        grep:文本行过滤工具
        sed:文本行编辑器(流编辑器)
        awk:报告生成器(做文本输出格式化)

      2、grep
        包含三个命令:grep egrep fgrep,他们是用来进行 行模式(pattern)匹配的
        egrep = grep -E //使用扩展的正则表达式进行匹配
        fgrep = fast grep //只使用文件通配符进行匹配
        *grep默认使用正则表达式进行文本匹配*

      3、grep的用法:
        grep [option] … PATTERN [filename]

      4、grep的常见选项 -- option
        -E 支持使用扩展的正则表达式(ERE)(regexp)
        -P 使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk 使用的regexp引擎也不相同)
        -i 忽略大小写
        -v 进行反选
        -o 仅仅输出匹配的内容(默认输出的是匹配到的行)
        --color=auto 语法着色
        -n 显示行号
        -w 匹配固定的单词

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

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

      1、字符匹配
        . 任意一个字符 相当于?
        [] 范围内的任意一个字符
        [^] 范围外任意一个字符
        字符类:[:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]
      2、次数匹配
        *匹配前面的字符0次到n次
        ?匹配前面的字符0次到1次
        + 匹配前面的字符1次到0次
          [abc]+ abbbbcccc
        {m} 匹配前面的字符m次
          a{7} aaaaaaa
        {m,n} 匹配前面的字符m到n次
        {0,n} 匹配前面的字符0次到n次 【0要不要?】
        {m,} 匹配前面的字符至少m次

      3、位置锚定

        ^ 锚定行首
        $ 锚定行尾
         锚定词首和锚定词尾
        > 锚定词尾
        < 锚定词首
        < oot> rooter


      4、分组
        abc* abcccc abc我们要看成一个整体
        () 示例:(abc)* abcabcabc abcccc
        **分组特性:默认情况下,Linux系统会为分组指定变量,变量的表示形式1 2 3 …

        示例:(ab+(xy)*) 其中1 = ab+(xy)*,2 = xy

  • 相关阅读:
    oracle查找前几条记录
    linux主要目录
    openstack搭建3、部署xinetd服务
    openstack搭建1、前期准备
    openstack搭建2、部署Mariadbgalera
    Java 基础(类的加载与ClassLoader的理解)
    K8S 查看资源使用情况
    Java 基础 (Java 反射机制)
    Java 基础 (网络编程 TCP 例子)
    Java 基础 (网络编程 UDP 例子, URL)
  • 原文地址:https://www.cnblogs.com/duyunlong123456/p/11360436.html
Copyright © 2011-2022 走看看