grep程序

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

grep

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

grep的用法:

  grep [option] ... PATTERN [filename]

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

PATTERN--正则表达式

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

字符匹配

  .  任意一个字符  ?
  [ ]  范围内的任意一个字符
  [^ ]  范围外任意一个字符
  字符类:[:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]

次数匹配

  * 匹配前面的字符0次到无数次
  \?匹配前面的字符0次到1次
  \+ 匹配前面的字符1次到n次
  \{m\} 配置前面的字符m次
  a\{7\} aaaaaaa
  \{m,n\} 匹配前面的字符m到n次
  \{0,n\} 匹配前面的字符0次到n次  【0要不要?(不行!)】
  \{m,\} 匹配前面的字符至少m次

位置锚定

  ^ 锚定行首
  $  锚定行尾
  ^[[:space:]]*$  空白行
  \b 锚定词首和锚定词尾
  \>  锚定词尾
  \<  锚定词首
  \<root\>  rooter

分组

  abc*  abcccc  abc要看成一个整体
  **分组特性:默认情况下,Linux系统会为分组指定变量 ,变量的表示形式 \1 \2 \3 ...  (后向引用)

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

扩展的正则表达式

  【标准正则表达式中的 \ 都可以去掉】
  分组  : ()  后向引用  \1 \2 \3 ...
  或: |

    grep -E "(svm|vms)" /proc/cpuinfo  //查看CPU的虚拟化功能

shell_Day04的更多相关文章

随机推荐

  1. WinRAR的 安装与下载

    一.简介 WinRAR 是一个强大的压缩文件管理工具.它能备份你的数据,减少你的 E-mail 附件的大小,解压缩从 Internet 上下载的 RAR.ZIP 和其他格式的压缩文件,并能创建 RAR ...

  2. Windows服务安装小工具

    主要为了方便Windows服务的安装卸载,不需要使用CMD命令. 先给大家小工具的效果图: 使用此工具需要注意一下几点: 1.服务程序的.NET Framework版本: 2.服务名称与服务执行程序名 ...

  3. LOJ.数列分块入门3

    题目 分析 由大题目知此题分块 注意处理前驱下标的合法性 \(Code\) #include<cstdio> #include<cmath> #include<algor ...

  4. Linux下文件实时自动同步备份

    转载简书: https://www.jianshu.com/p/fc2f3ec661c0

  5. Vulhub 漏洞学习之:Aria2

    Vulhub 漏洞学习之:Aria2 目录 Vulhub 漏洞学习之:Aria2 1 Aria2 任意文件写入漏洞 1.1 漏洞利用 1 Aria2 任意文件写入漏洞 Aria2是一个命令行下轻量级. ...

  6. 基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素

    基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素 EULAR2015; PresentID: SAT0258 BASELINE MRI/CRP AS PREDICTORS OF RESPO ...

  7. $(...).bootstrapTable is not a function (已解决)

    1.首先保证Jquery是不是在所有js最前面引入且引入地址正确能打开 2.页面jquery不能重复引入,我这边就是重复引用了导致报错的

  8. ES6中的class对象和它的家人们

    在ES6中新增了一个很重要的特性: class(类).作为一个在2015年就出了的特性, 相信很多小伙伴对class并不陌生.但是在日常开发中使用class的频率感觉并不高(可能仅限于作者),感觉对c ...

  9. docker-compose部署rocketmq

    docker-compose安装: 1.从github上下载docker-compose二进制文件安装 Ubuntu下载docker-compose文件 sudo curl -L https://gi ...

  10. Hadoop YARN与MapReduce

    YARN架构 ResourceManager      负责整体资源的管理 (Scheduler and ApplicationsManager)NodeManager     向ResourceMa ...