1. grep简介

grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。
egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

2. grep正则表达式元字符集(基本集)

^
锚定行的开始 如:’^grep’匹配所有以grep开头的行。

$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

.
匹配一个非换行符的字符如:'gr.p’匹配gr后接一个任意字符,然后是p。

*
匹配零个或多个先前字符如:’*grep’匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。

[]
匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。

[^]
匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。


标记匹配字符,如’love’,love被标记为1。

\<
锚定单词的开始,如:’<grep’匹配包含以grep开头的单词的行。

\>
锚定单词的结束,如’grep>'匹配包含以grep结尾的单词的行。

x\{m\}
重复字符x,m次,如:'0{5}'匹配包含5个o的行。

x\{m,\}
重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。

x\{m,n\}
重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5–10个o的行。

\w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p。

\W
\w的反置形式,匹配一个或多个非单词字符,如点号句号等。

\b
单词锁定符,如: '\bgrep\b’只匹配grep。

3. 用于egrep和 grep -E的元字符扩展集

+
匹配一个或多个先前的字符。如:’[a-z]+able’,匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。

?
匹配零个或多个先前的字符。如:'gr?p’匹配gr后跟一个或没有字符,然后是p的行。

a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed

()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。

grep和egrep的区别相关推荐

  1. grep与egrep的区别

    grep与egrep的区别: 在linux系统环境下,我们通常使用grep命令来过滤出需要的行而egrep确很少使用,他们的区别其实很简单,grep默认不支持正则表达式,egrep默认支持正则表达式, ...

  2. grep与egrep的区别!

    * grep: 传统的 grep 程序, 在没有参数的情况下, 只输出符合 RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: ...

  3. shell脚本_ grep和egrep命令

    grep 全称(Global search REgular expression and Print out the line) 作用:文本搜索工具,根据用户指定的文本模式(正则表达元字符以及正常字符 ...

  4. linux里grep和egrep,fgrep的区别

    例子: 1. : 格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号 ...

  5. linux egrep和grep区别,Linux中的Grep,Egrep和Fgrep有什么区别?

    在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序.它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基 ...

  6. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  7. 小试牛刀:文本处理工具之grep、egrep详解

    grep.egrep命令 本文中主要介绍了linux系统下grep.egrep命令和正则表达式的基本参数和使用格式.方法. 1. Grep简介 grep (global search regular ...

  8. grep 或 egrep 或awk 过滤两个或多个关键词|使用grep匹配“与”或者“或”模式

    原文地址为: grep 或 egrep 或awk 过滤两个或多个关键词|使用grep匹配"与"或者"或"模式 转自:http://hi.baidu.com/ch ...

  9. Linux命令:grep命令 | egrep命令

    grep:文本搜素工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能被模式所匹配到的行 包含三个命令:grep.egrep(相当于grep -E 扩展的正则表达式)和fgrep(相当于grep ...

最新文章

  1. define的多行定义
  2. Nilearn教程系列(2)-3D和4D niimgs:处理和可视化
  3. 理解Hinge Loss (折页损失函数、铰链损失函数)
  4. 微信小程序之生成二维码
  5. 5kyu Some Egyptian fractions
  6. MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16
  7. android excel 筛选功能,Android实现Excel表格展示数据
  8. 对easyUI中课堂源码编辑改进建议
  9. 终于用到DataGrid了,比较郁闷
  10. 第三章关系数据库标准语言SQL
  11. 基于Echarts+HTML5可视化数据大屏展示—大数据管理平台中心
  12. freeMarker fmpp 解析PowerDesign PDM探索
  13. laravel5.1 基于redis实现任务队列
  14. python判断ip地址是否合法_Python课堂:判定IP地址合法性的三种方法
  15. 在vue中动态添加商品SKU
  16. solus linux下载链接,Solus Linux下载_Solus 4.0 最新版_零度软件园
  17. FillRect与FrameRect
  18. 网络图片地址直接转Base64
  19. xp系统怎么添加wifi连接服务器,XP系统怎么连接无线路由器
  20. Excel编程 VBA环境搭建(一)

热门文章

  1. base64 string类 放不下_千夜空的推荐 | LOFTER(乐乎) - 让兴趣,更有趣
  2. linux 打印网卡与IP对应列表
  3. STM32cubemx教程及STM32入门(五)IIC
  4. 导出开发板根文件系统rootfs
  5. 【摘要】STC系列单片机ISP编程器/烧录器的说明
  6. 微粒化运营:升级内容产业消费体验(附视频版)
  7. exec 和 exec_
  8. shell之cut命令
  9. pyside2 系列之介绍,安装,简单例子
  10. WebGL,Cesium以及GeoJSON数据的简单介绍