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

最新文章

  1. Hibernate中的数据库方言(Dialect)
  2. BrowserSync前端调试工具使用
  3. 读JS高级——第五章-引用类型 _记录
  4. Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状
  5. [转]python类方法
  6. Solr 安装与集成IK中文分词器
  7. EF有外键的查询
  8. FMDB 直接将查询结果转化为字典
  9. HTTP状态码 - HTTP Status Code
  10. 雪花降落CADisplayLink
  11. JFrame常用属性设置模板
  12. SELECT 语句
  13. CentOS 7 rpm -i 时 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解决方法
  14. Servlet(5)—ServletRequest接口和ServletResponse接口
  15. MySQL把文件导入表中
  16. Docker Compose部署lnmp
  17. 交换机与VLAN
  18. 算法之路 level 01 problem set
  19. ory Oathkeeper cloud native 访问认证平台
  20. stm32 外扩SRAM使用问题

热门文章

  1. LBS 附近的人
  2. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
  3. 如何去掉MapReduce输出的默认分隔符
  4. O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求
  5. 安装Geo-IP
  6. ”非常危险“的Linux命令
  7. Spring Boot内嵌Tomcat session超时问题
  8. 第1章列表处理——1.1 Lisp列表
  9. android requestLayout()重新请求布局
  10. readonly const关键字