grep命令

  首先我们知道grep命令是用来做文件内容过滤的!如果你要在文件中查找一些对应的内容,我们如何来过滤找到其中我们需要符合条件的内容呢?grep命令结合正则表达式就可以实现;

  grep、egrep以及fgrep为一组命令,其中grep为命令本身,而grep -E(支持扩展的正则表达式),fgrep就是什么都支持(fast grep)在某些条件下实现快速查找;这里我们详细介绍grep命令;

  grep的使用方式:grep [OPTIONS] PATTERN [FILE...]

  pattern 模式:这里的模式,文本字符、正则表达式的元字符组而成的一个匹配条件,就是我们的pattern;

  grep是以块来匹配,只要这一行包含匹配字符,这一行的内容在默认情况下都会显示出来;

  -o  只有匹配的字符才会显示,不会再直接显示整行的内容;

  -v  反向选择,匹配pattern里面没有包含的内容

  -i  字母不区分大小写

  为了匹配更为复杂的内容,我们将pattern的内容结合正则表达式来进行匹配,下面我们就具体介绍下正则表达式:

正则表达式

  Regular EXPression,REGEXP

  正则表达式就是使用一些元字符,他们不表示自己原本的意义,而是使用这些元字符的通配含义!【一定要区分正则表达式中的通配符,与文件名通配符的区别!】

  文件名通配符【非正则表达式】:

    *  表示任意长度的任意字符

    ?  任意的单个字符

    []  文件匹配范围

    [^]  文件匹配范围取反

  基本正则表达式通配符含义:

  1、字符匹配:

    .  表示任意单个字符

    *  匹配前面一个字符,任意长度

      a* 这就表示匹配a、aa、aaa等【.* 在正则表达式里面是匹配任意字符的意思】

    \?  匹配前面的字符1次后者0次【* 表示匹配前面的字符任意次】

    \{m,n\}  匹配前面的字符最少m次,最多n次

      \{1,\}  匹配前面的字符最少一次

      \{0,3\}  匹配前面的字符最少0次,最多3次

    []  匹配范围内的单个字符

      grep --color [ab] /etc/inittab  #匹配a或则b字符

    [^]  匹配范围外的字符

      grep --color [^ab] /etc/inittab  #匹配除了ab字符外的所有字符

  2、位置锚定符号:

    ^  锚定行首,指定文件以什么内容开头

    $  锚定行位,指定文件以什么内容结尾

    ^$  表示空白行

    \<  其后面的任意字符必须作为单词的首部出现

    \>  其后面的任意字符必须作为单词的尾部出现

      \<root\>  #以root开头的单词,且以root结尾的单词,abrroot、rootabc这两个字符串就无法匹配上;

    \b  \b放在开头,则是\<锚定单词首部,\b放在后面,则是\>锚定单词尾部

  3、分组:

    \(\)  例如:\(ab\)*和ab*的区别,前者是ab一起重复任意次,而后者则是b重复任意次;前者将ab视为了一个整体!

    \1  引用第一个左括号以及第一个右括号括起来的组参数

    \2  引用第二个左括号的以及第二个右括号括起来的组参数

    \3 、\4、\5 ... 依此类推

  

 

07 grep命令与正则表达式的更多相关文章

  1. 快速掌握grep命令及正则表达式

    Linux系统自带了支持拓展正则表达式的 GNU 版本 grep 工具,所有的Linux发行版中均默认安装grep ,grep 命令被用来检索一台服务器或工作站上任何位置的文本信息,如何在 Linux ...

  2. Linux grep命令和正则表达式

    介绍 grep是一个功能强大的文本搜索命令,可以用它来搜索某个文件中是否包含指定的搜索内容,它可以利用正则表达式来做复杂的筛选操作,它还可以为其它命令传输给管道的筛选,比如我们常用到的分析单个进程的操 ...

  3. grep命令与正则表达式

    搜寻特定字符串the 常用参数:-a 将binary档案以test档案的方式搜寻数据    -c  计算找到'搜寻字符串'的次数    -i 忽略大小写的不同  -n  顺便输出行号  -v  反向选 ...

  4. Linux grep 命令中的正则表达式详解

    在 Linux .类 Unix 系统中我该如何使用 Grep 命令的正则表达式呢? Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式(extended regular expres ...

  5. linux:正则表达式grep命令

    基本语法一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串. 一.选择:| |   竖直分隔符表示选择,例如"boy|girl"可 ...

  6. 如何使用Grep命令查找多个字符串

    如何使用Grep 命令查找多个字符串 大家好,我是良许! 今天向大家介绍一个非常有用的技巧,那就是使用 grep 命令查找多个字符串. 简单介绍一下,grep 命令可以理解为是一个功能强大的命令行工具 ...

  7. 正则表达式2——grep命令

    grep是Global search Regular Expression and Print out the line的简称. 1. grep命令基本用法 命令格式: grep [选项][模式][文 ...

  8. grep命令及基本正则表达式

    grep命令是Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功 ...

  9. Linux - 结合正则表达式使用grep命令

    Grep with Regular Expression grep命令基本用法 grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名参数说明: ...

随机推荐

  1. ML(4)——逻辑回归

    Logistic Regression虽然名字里带“回归”,但是它实际上是一种分类方法,“逻辑”是Logistic的音译,和真正的逻辑没有任何关系. 模型 线性模型 由于逻辑回归是一种分类方法,所以我 ...

  2. c#与C++类型转换网摘

    转载自 C++和C#转换 https://www.cnblogs.com/zjoch/p/4147182.html c#与C++类型转换,网摘 //c++:HANDLE(void   *)       ...

  3. Jenkins进阶-Slave 节点的配置(11)

    Jenkins的主节点无法满足当前的发布需求,所以我们需要增加一个从节点,我们是本着节约的模式,所以主从节点均需要有任务来进行构建: 1.系统管理->管理节点: 2.添加从节点,管理节点-> ...

  4. spring-IOC容器(二)

    一.bean配置里面使用外部属性文件: <bean>中添加context Schema定义,Spring 提供了一个<property-placeholder>元素,可以在be ...

  5. HTTP 状态码的完整列表

    一.1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码.SC_CONTINUE = 100; 100(继续)请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余 ...

  6. 基于tornado的文件上传demo

    这里,web框架是tornado的4.0版本,文件上传组件,是用的bootstrap-fileinput. 这个小demo,是给合作伙伴提供的,模拟APP上摄像头拍照,上传给后台服务进行图像识别用,识 ...

  7. SVN怎么触发Jenkins自动构建

    通常,有几种方式可以在SVN仓库发生改变时触发Jenkins进行构建.第一种是,Jenkins主动轮询SVN仓库:第二种是,在SVN客户端(如TortoiseSVN)创建客户端hooks来触发构建:第 ...

  8. [蓝桥杯]ALGO-16.算法训练_进制转换

    问题描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*102+2*101+3*100这样 ...

  9. 【redis】之centos6.x安装redis3.0.x

    centos6.9_x86_64 1.下载redis安装包 http://download.redis.io/releases/redis-3.2.9.tar.gz 2.解压 编译到指定得目录 mak ...

  10. opengl 入门浅学(一)

    因为要做图形学的实验,又是要以OPENGL为基础,所以就稍微在网上查了一些资料. 我是带着目的去学习的,所以就没有打基础之类的学很深,浅尝. 今天试着搭简单框架,画出一个图形.大神请出门左转. #in ...