Ubuntu下,grep的用法
2024-09-06 14:25:12
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
最新文章
- Hibernate中的数据库方言(Dialect)
- BrowserSync前端调试工具使用
- 读JS高级——第五章-引用类型 _记录
- Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状
- [转]python类方法
- Solr 安装与集成IK中文分词器
- EF有外键的查询
- FMDB 直接将查询结果转化为字典
- HTTP状态码 - HTTP Status Code
- 雪花降落CADisplayLink
- JFrame常用属性设置模板
- SELECT 语句
- CentOS 7 rpm -i 时 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解决方法
- Servlet(5)—ServletRequest接口和ServletResponse接口
- MySQL把文件导入表中
- Docker Compose部署lnmp
- 交换机与VLAN
- 算法之路 level 01 problem set
- ory Oathkeeper cloud native 访问认证平台
- stm32 外扩SRAM使用问题
热门文章
- LBS 附近的人
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
- 如何去掉MapReduce输出的默认分隔符
- O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求
- 安装Geo-IP
- ”非常危险“的Linux命令
- Spring Boot内嵌Tomcat session超时问题
- 第1章列表处理——1.1 Lisp列表
- android requestLayout()重新请求布局
- readonly const关键字