grep家族由命令grep、egrep和fgrep组成。

grep:在文件中全局查找指定的正则表达式,并且打印所有包含该表达式的行。
egrep和fgrep是grep的变体。
egrep:grep的扩展,提供更多正则表达式元字符支持。
fgrep:固定grep或快速grep,它按字面解释所有字符,即不会处理正则表达式元字符。

  • grep

优点:不需要启动编辑器就可以执行查找操作,也用不着把正则表达式括在正斜杠中,使用grep比使用vi快得多。

grep命令在一个或多个文件中查找某个字符模式。
grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词,位于模式之后的所有单词都被视为文件名。如果这个模式中包含空格,就必须用引号把它括起来。
grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。

grep使用的正则表达式元字符:

元字符

功能

示例

^

行首定位符

/^love/

$

行尾定位符

/love$/

.

匹配单个字符

/l..e/

*

匹配零个或多个字符

/ *love/

[ ]

匹配一组字符中的一个

/[Ll]ove/

[x-y]

匹配指定范围中的一个字符

/[A-Z]ove/

[^ ]

匹配不在指定组中的字符

/[^A-Z]/

\

转义元字符

/love\./

元字符

功能

示例

\<

词首定位符

/\<love/

\>

词尾定位符

/love\>/

\(..\)

匹配稍后将要使用的字符的标签

/\(love\)able\1er/

x\{m\}或

x\{m,\}或

x\{m,n\}

字符x的重复出现:

m次、

至少m次、

至少m次且不超过n次

o\{5,10\}

grep的退出状态:
grep命令在shell脚本中很有用,因为它总会返回一个退出状态,以说明能否定位到要查找的模式或文件。
如果找到了模式,grep返回的状态为0,表示成功。
如果找不到模式,返回1作为退出状态。
当找不到文件时,返回2作为推出状态。

grep家族的更多相关文章

  1. grep家族、sed、awk

    一.grep家族 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 在上一次的博客中已经使用过egrep通过正则表达式来匹配正确IP地址,这里的用法就不多说了. f ...

  2. Linux安全基础:grep命令的使用

    grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的 ...

  3. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  4. (转)Linux grep

    文章转自 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html 简介 grep (global search regular ...

  5. Linux 命令——grep | 正则表达式

    感觉讲的很详细,瞬间懂了grep,正则. from: here 简介 grep (global search regular expression(RE) and print out the line ...

  6. linux grep

    grep (缩写来自Globally search a Regular Expression and Print) 是一种强大的文本搜 索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Uni ...

  7. grep命令学习

    grep(Globally search a Regular Expression and Print), 全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把 ...

  8. linux使用grep和find查找内容

    1,在某个路径下查文件. 在/etc下查找“*.log”的文件 find /etc -name “*.log” 2,扩展,列出某个路径下所有文件,包括子目录. find /etc -name “*” ...

  9. Linux之grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

随机推荐

  1. 如何在100万文字的文章中 200ms内 快速提取 替换 上万个关键字

    关键点: 关键字 组合 成一棵 hash 树  ( 有属性就直接移动指针到下一个字对象, 没有属性就创建子对象, 再移动指针;  第二次循环在子对象看有没这个属性 ) 探测针       标记结束   ...

  2. Thrift之c++实例

    一.c++实例 1.下载与安装thrift工具 http://thrift.apache.org/download/ .服务端代码 1).新建vc工程. 2).将上面的文件拷贝到工程目录下,Test_ ...

  3. MySQL auto_increment介绍 以及 查询和修改auto_increment的方法

    一.auto_increment使用方法 .创建table时设置auto_increment属性和初始值100 create table nonove ( id bigint unsigned not ...

  4. ORM版,学生管理系统03

    关于老师信息管理 建立多对多关系 第一种(通过外键建立) 自己写类,自己使其建立关系 缺点: 不能用Django ORM 多对多操作的语法 class Teacher(models.Model): t ...

  5. zju 校队选拔 被虐记

    选拔已经开始了三天才想起来写游记 QAQ.. 7.12 弱弱的Sky_miner来到了ZJU,过程中被热成狗... 然后见到了无数大二大三的大佬们,过程中被热成狗... 后来听靖哥哥说集训的注意事项, ...

  6. CentOS虚拟机中安装VMWare Tools

    1.单击VMWare的[虚拟机]菜单,选择[安装VMWare Tools]命令 2.接着CentOS系统会自动挂载VMWare  Tools,并自动打开,如果没有打开可以自己去图形界面打开VMWare ...

  7. input type="file" accept="image/*"上传文件慢的问题解决办法

    相信大家都写过<input type="file" name="file" class="element" accept=" ...

  8. Java 多个引用类型变量引用同一个对象

    引用类型变量在声明后必须引用对象才能使用. 一个引用变量只能唯一指向一个对象,但同一个对象可被多个引用类型变量引用. 如:MyDate today; //将变量跟配给一个保存引用的空间(栈) toda ...

  9. nginx upstream配置

    upstream *.com { server 127.0.0.1:5000 weight=10 max_fails=2 fail_timeout=30s;} server { listen 80; ...

  10. composer的安装和使用 学习日志

    如果你做为一个phper,没有用过composer,那你真的不是一个合格的开发者.那么就来记录一下composer的学习日志 下面分享几个学习源头: composer中文网站:https://www. ...