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. 重学SpringBoot. step6 SpringBoot高级技巧

    SpringBoot高级技术 博客地址: step6 SpringBoot高级技巧 异步线程池 书上讲的是什么像异步操作那样,然后不需要等待. 问题是,不需要等待,但数据在生成的时候的时间并不能省. ...

  2. Vue11 vue的data中属性的值(基础数据类型和对象)

    1 代码 <body> <div id="root"> <h1>{{name}}</h1> <h1>{{obj}}< ...

  3. 简单搭建react开发环境

    目录 前言 一.node.js使用 二.vscode 1.打开文件 2.运行 3. 第一个react程序,从helloworld写起 总结 前言 安装前需要安装:node.js.vscode 一.no ...

  4. shell:判断某个变量是否包含字符串/变量的方法

    尝试了有3种方法: 1.使用"=~"符号,注意前后必须要有空格! ** 可以输出正确结果,被匹配的字符串必须要有引号括起来!** [clouder@ana53 bin]$ a1=' ...

  5. 【USACO 2021 US Open, Gold】Permutation

    \(\text{Solution}\) 发现每个时刻的状态一定是所有点在一个最外围三角形的内部 设 \(f_{i,j,k,p}\) 表示排列填到第 \(p\) 位,此时图形最外围的三角形是以编号为 \ ...

  6. JZOJ 2645. 【NOIP2011模拟11.1】钓鱼

    题面 分析 状压 \(dp\) 直接上啊! 设 \(f_{t,S,pos}\) 表示 \(t\) 这个时刻之前能钓到的最多的鱼的数量 那么当前为可以钓鱼也可以移动 于是一切都明朗了 \(Code\) ...

  7. 达标式减量策略又一例证(STRASS研究)

    标签: 类风湿关节炎; T2T策略; TNF抑制剂; 药物减停; STRASS研究 达标式减量策略又一例证(STRASS研究): RA维持期个体化减停TNF拮抗剂是可能的 电邮发布日期: 2016年1 ...

  8. form表单enctype扩展

    enctype就是encodetype就是编码类型的意思. multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思. 需要注意的是:默认情况下,enc ...

  9. vue项目引用vue-pdf打包多出worker.js文件

    问题描述:项目要用到pdf预览功能,因为是vue项目就是直接导入了vue-pdf组件,但是在进行打包的时候在dist文件夹下面多个worker.js文件,导致项目部署后预览pdf直接报了404 方案一 ...

  10. vue3 使用clodop打印插件实现不预览直接打印

    一.下载安装C-LODOP https://www.lodop.net/download.html 解压文件后点击exe程序,启用服务 将上述的 LodopFuncs.js 文件放到工程某个文件下 二 ...