博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux grep及正则表达式
阅读量:5157 次
发布时间:2019-06-13

本文共 1402 字,大约阅读时间需要 4 分钟。

grep:

  Linux系统上处理文本的三剑客
   grep:文本过滤(模式:pattern)工具;
    grep、egrep、fgrep
   sed:流编辑器,文本编辑工具;
   awk:Linux上是gawk,文本报告生成器;可以把文本以更美观的形式显示出来;
    grep:
     作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;最后打印匹配到的行
      模式:由正则表达式字符及文本字符所编写的过滤条件;
    REGEXP:由一类特殊字符及文本字符所编写的模式,其中有些字符不表示字符字面的意思,而表示控制或通配的功能;
    分两类:
     基本的正则表达式:BRE;
     扩展的正则表达式:ERE;
    正则表达式引擎:不同的命令工具可能引擎不同,搜索的算法不同;
     选项:
      grep [OPTIONS] PATTERN [FILE…]
      -v:显示模式匹配之外的内容;
      -A:显示匹配内容及其后面的N行;
      -B:显示匹配内容及其前面的N行;
      -C:显示匹配内容及其前后的N行;
      -i:搜索匹配模式时忽略字母大小写;
      -E:用扩展正则表达式搜索;
      -F:fgrep;
      -o:仅显示匹配到的字符串;
      -q:静默模式,不输出任何信息;可以通过echo $?来查看命令是否执行成功;
    基本正则表达式元字符:
     匹配字符
      “.”:匹配任意字符;
      [ ]:匹配范围内的任意单个字符;
      [^]:匹配范围外的任意单个字符;man tr;
     匹配次数
      “*”:匹配前面字符任意次;
      “.*”:匹配任意字符任意次;
      \+:匹配前面字符最少一次;
      \?:匹配前面字符最多一次;
      \{m,n\}:匹配前面字符最少m次,最多n次;
       多种用法:
        \{m\}:匹配前面字符m次;
        \{m,\}:匹配前面字符最少m次;
        \{0,n\}:匹配前面字符最多n次;
     位置锚定
      ^:锚定行首;
      $:锚定行尾;
      ^PATTERN$:匹配符合模式要求的整行内容;
      ^$:空行; ^[[:space:]]*$:
      \<或\b:锚定词首;
      \>或\b:锚定词尾;
      \<PATTERN\>:匹配整个单词;
     分组
      \( \):将一个或多个字符捆绑在一起,当做一个整体进行处理;
      Note:分组括号中的模式匹配到的内容会被正则表达式引擎记录到内部的变量中,变量的命名格式为:\1、\2、\3、…;
       \1:从左边开始,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符内容;
      后向引用:引用前面分组括号中的模式所匹配的字符内容;(而非模式本身)

注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

转载于:https://www.cnblogs.com/guowei-Linux/p/9787343.html

你可能感兴趣的文章
MyBatis一次执行多条SQL语句
查看>>
安卓环境搭建
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
bzoj2333 [SCOI2011]棘手的操作
查看>>
在ASP.NET Atlas中创建自定义的Behavior
查看>>
ant安装与配置
查看>>
福彩双色球项目
查看>>
20162330 结对编程项目-四则运算(挑战出题)
查看>>
【Linux】awk详细介绍
查看>>
顶级(top-level)元素,块级(block-level)元素和内联(inline)元素.
查看>>
折腾Java设计模式之模板方法模式
查看>>
简明python教程笔记一
查看>>
672. Bulb Switcher II 灯泡切换器II
查看>>
二十三、CI框架之post
查看>>
LCS待完成
查看>>
JavaScript-实现下拉菜单
查看>>
docker搭建mysql集群
查看>>
比天空还远的季节
查看>>
高精度乘法
查看>>
用 python 解决汉诺塔问题并附带演示过程
查看>>