grep(Global search Regular Expression and Print out the line)是一种强大的文本搜索工具,
它能使用正则表达式搜索文本,并把匹配的行打印出来。
Unix的grep家族还包括egrep(Ext)和fgrep(Fixed)。

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

元字符 功能 示例 匹配对象
^ 行首定位符 ‘^simaopig%’ 匹配所有以simaopig开头的行
$ 行尾定位符 ‘simaopig$’ 匹配所有以simaopig结尾的行
. 匹配任意一个字符 ‘s.m’ 匹配包含一个s字符,后面跟一个字符(随意),再跟一个m的行
* 匹配0或多个前一字符 ‘s*m’ 匹配包含零个或多个s字符,后面跟有一个m字符的行
[] 匹配一组字符中的任意一个 ‘[Ss]imaopig’ 匹配simaopig,或者Simaopig
[^] 匹配不在指定字符组内的字符 ‘[^a-z]imaopig’ 匹配不包含在a-z之间的字符后跟着imaopig的行,即所有aimaopig-zimaopig的行都不包含(有点绕)
\< 词首定位符 ‘\<simaopig’ 匹配以simaopig为开头的词的行,simaopigabcd也是可以的
\> 词尾定位符 ‘simaopig\>’ 匹配以simaopig为结尾的词的行,abcdsimaopig也是可以的
.. 标记匹配的字符 ‘simaopig's blog’ 标记寄存器里的一段字符,该寄存器被记作1号寄存器。以后引用这段字符时,可以使用\1来重复该模式。9个标签中最左边的是第一号。例如,模式simaopig被保存在1号寄存器里,之后用\1来引用它。
x\{m\}或x\{m,\}或x\{m,n\} 字符x的重复出现 ‘s\{5\}’,'s\{5,\}’,'s\{5,10\}’ 匹配连续出现5个s、至少5个s或5到10个s的行

grep的选项:

选项 功能
-b 在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到
-c 显示匹配到的行的数目,而不是显示行的内容
-h 不显示文件名
-i 比较字符时忽略大小写的区别
-l(小写的字母L) 只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔
-n 在每一行前面加上它在文件中的相对行号
-s 无声操作,即只显示报错信息,用于检查退出状态
-v 反向查找,只显示不匹配的行
-w 把表达式作为词来查找,就好像它被\<和\>夹着那样。只适用于grep(并非所有版本的grep都支持这一功能,譬如,SCO UNIX就不支持)

更多参见:
grep 正则表达式及选项以及注意
grep用法详解:grep与正则表达式

原文:http://blog.csdn.net/gaojinshan/article/details/9379957

Ubuntu下,grep的用法的更多相关文章

  1. ubuntu下的fdisk用法

    Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法: 对 于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/d ...

  2. Ubuntu 14.10 下grep命令详解

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

  3. 转:关于rename命令ubuntu下的用法

    下面是我的遭遇:上午想批量改几个文件的名字,觉得mv在批量方面不够方便,百度到了rename这个命令,原谅我吧,我总是在百度不到结果时才去看google,以后还是少去百度的好国内很多贴子都在说linu ...

  4. Ubuntu下crontab命令的用法

    cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多. 想要让cron执行你指定的任务 ...

  5. 烂泥:ubuntu下配置msmtp+mutt发送邮件

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 本文主要介绍如何在Linux下使用msmtp+mutt发送邮件,当然Linux下发送邮 ...

  6. ubuntu下minicom和USB转串口(转)

    ubuntu下minicom和USB转串口(转)   minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...

  7. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  8. 【转】 Ubuntu下配置USB转串口及串口工具配置--不错

    原文网址:http://blog.csdn.net/dreambegin/article/details/6985028 注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303).我的是 ...

  9. 搭建Ubuntu下c/c++编译环境【转】

    1.       安装Ubuntu. 2.       安装gcc 方法一: sudo apt-get  install  build-essential 安装完了可以执行 gcc--version的 ...

  10. 2010-01-20 12:09 ubuntu下minicom的安装及使用

    转http://hi.baidu.com/npugtawqdnbgqrq/item/106f805409b42813db163527 ubuntu下minicom的安装及使用 安装: sudo apt ...

随机推荐

  1. IOS开发准备 资料集锦

    1 http://blog.csdn.net/column/details/xfzl-kykhd.html 2

  2. full join 时通过辅助列序号列消除笛卡尔积重复列

    如果没有序号列,那么如果领灯表里有3条数据,还灯表里面有2条数据,full join后就是3*2=6条数据 --1.领灯表,每天每班每人允许重复数据 select ID ,ROW_NUMBER() o ...

  3. POJ 3126 Prime Path (BFS+剪枝)

    题目链接:传送门 题意: 给定两个四位数a.b,每次能够改变a的随意一位.而且确保改变后的a是一个素数. 问最少经过多少次改变a能够变成b. 分析: BFS,每次枚举改变的数,有一个剪枝,就是假设这个 ...

  4. Linux的文件传输命令总结

    由于工作原因,须要常常在不同的server见进行文件传输,特别是大文件的传输,因此对linux下不同server间传输数据命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp ...

  5. 使用Fiddler抓包拦截线上JS

    第三方教程:http://www.lcgod.com/atc_74 分六步即可: 1.左侧session列表中选中你想替换的一条请求 2.右侧,切换到AutoResponder,点击Add rules ...

  6. 浅谈C/C++堆栈指引——C/C++堆栈

    C/C++堆栈指引 Binhua Liu 前言 我们经常会讨论这种问题:什么时候数据存储在飞鸽传书堆栈(Stack)中.什么时候数据存储在堆(Heap)中.我们知道.局部变量是存储在堆栈中的.debu ...

  7. HTML5 2D平台游戏开发#7Camera

    在庞大的游戏世界中,玩家不能一览地图全貌,而是只能看到其中一部分,并一步步探索,这时就要用到一种技术来显示局部的地图,游戏术语称为摄像机(Camera).下面两张图中的白色矩形框表示了Camera的作 ...

  8. Junit 内部解密之二: TestResult + TestListener + Assert

    转自:http://blog.sina.com.cn/s/blog_6cf812be0100wbhw.html 之前我们看到了Test接口里面的run方法有个TestResult的参数,不错,这个类就 ...

  9. spring boot配置文件

    1.spring boot通常打成一个jar文件发布,想修改配置文件比较麻烦,但他提供了一种读取外部配置文件的方式.在代码的主类中增加如下代码 System.setProperty("spr ...

  10. 第一篇: Ansible 介绍

    应用场景:   BOSS:运维帮忙把所有的服务器tomcat 重启一下,谢谢!(tomcat 服务有2K台) 运维:………… 运维:  啪啪啪啪啪啪啪啪..........(键盘的声音响彻办公室) B ...