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. RESTful api 与 Django的 restfulframework

    RESTful api 与 Django的 restfulframework 1 restful api 的基本概念 一类的资源使用一个url,不同的操作通过 请求方式处理 api -- >&g ...

  2. Win7系统64位环境下使用Apache——下载mod_jk

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/70313329 本文出自[我是干勾鱼的博客] 之前在几篇文章: Win7系统64位 ...

  3. Android内存优化(一)DVM和ART原理初探

    相关文章 Android内存优化系列 Java虚拟机系列 前言 要学习Android的内存优化,首先要了解Java虚拟机,此前我用了多篇文章来介绍Java虚拟机的知识,就是为了这个系列做铺垫.在And ...

  4. ss-libev 源码解析local篇(1): ss_local的启动,客户端连入

    学习研究ss-libev的一点记录(基于版本3.0.6) ss_local主要代码在local.c中,如果作为一个库编译,可通过start_ss_local_server启动local server. ...

  5. 旧书重温:0day2【6】bind_shell

    学习了以上5节课,我们学到了很多知识,例如如何动态获取指定函数的地址:我们也学到了很多经验,例如如何发现代码中的错误,如何用od定位到错误,并修正. 有了以上积累,今天我们继续实验bind_shell ...

  6. 伪元素:placeholder-shown&&:focus-within

    :placeholder-shown 另外,划重点,这个伪类是仍处于实验室的方案.也就是未纳入标准,当然我们的目的是探寻有意思的 CSS . 当 input 类型标签使用了 placeholder 属 ...

  7. 21天学通C++_Day3_Part1

    今天奔跑吧兄弟来杭电了,决定不去看,宅在科协继续啃(反正去了也看不到咯),继续继续,今天白天没课,希望可以更两个. 0.C风格字符串 在数组中间把某个字符替换成‘\0’并不会改变数组的长度,但是显示时 ...

  8. cnn(卷积神经网络)比较系统的讲解

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  9. C# null和" "的区别

    String str1 = null;   str引用为空 String str2 = "";      str引用一个空串 也就是null没有分配空间,""分 ...

  10. assembly 需要 unload 和 update 的时候怎么办?

    我正在开发公司的业务组件平台,组件池的灵活性要求很高,业务组件都是可以立即更新和及时装配的;目前完成这些功能,有待测试.用appDomain.unload 拆卸assembly 可以,只是用起来比较麻 ...